Agenda bàsica¶
Dissenya les següents funcions en Python i desa-les al fitxer
agenda.py:
- agenda.crea_agenda(ldades)¶
Donada una llista de llistes ldades, on cada subllista conté dos strings que representen un nom i un telèfon, retorna un diccionari les claus del qual seran un string amb el nom, i els valors un string amb el número de telèfon. Suposa que no hi ha noms repetits a ldades. Per exemple,
>>> l = [["maria","931111111"], ["pep","912222222"], ["anna","93919391"]] >>> d = crea_agenda(l) >>> d == {"maria":"931111111", "pep":"912222222", "anna":"93919391"} True
Nota
Podeu descarregar el fitxer amb tests
test_crea_agenda.txt.
- agenda.compta_prefixos(agenda, prefix)¶
Donat un diccionari agenda com el que retorna la funció anterior i un prefix telefònic (string), retorna quants números de telèfon del diccionari comencen amb aquest prefix. Per exemple,
>>> d = {"maria":"931111111", "pep":"912222222", "anna":"93119391"} >>> compta_prefixos(d, '9311') 2 >>> compta_prefixos(d, '9') 3 >>> compta_prefixos(d, '67') 0
Nota
Podeu descarregar el fitxer amb tests
test_compta_prefixos.txt.
- agenda.conte_prefix(agenda, prefix)¶
Donat un diccionari com el descrit anteriorment i un prefix telefònic (string), retorni un booleà que indica si algun telèfon de l’agenda comença pel prefix indicat. Per exemple,
>>> d = {"maria":"931111111", "pep":"912222222", "anna":"93119391"} >>> conte_prefix(d, '9311') True >>> conte_prefix(d, '93117') False >>> conte_prefix(d, '6') False
Nota
Podeu descarregar el fitxer amb tests
test_conte_prefix.txt.
- agenda.noms_prefix(agenda, prefix)¶
Donat un diccionari com el descrit anteriorment i un prefix telefònic (string), retorna una llista amb els noms que tenen un telèfon amb aquest prefix, ordenada alfabèticament. Per exemple,
>>> d = {"maria":"931111111", "pep":"912222222", "anna":"93119391"} >>> noms_prefix(d, '931') ['anna', 'maria'] >>> noms_prefix(d, '9') ['anna', 'maria', 'pep'] >>> noms_prefix(d, '6') []
Nota
Podeu descarregar el fitxer amb tests
test_noms_prefix.txt.
- agenda.crea_agenda_reps(ldades)¶
Fa el mateix que crea_agenda_reps però admet una llista amb noms repetits. Retorna un diccionari les claus del quals són els noms, i cada valor associat és una llista de strings amb tots els numeros de telèfon que corresponen al nom. L’ordre dels telèfons de cada nom serà el mateix en el que apareixen a la llista que se li passa com a paràmetre. Per exemple,
>>> l = [["maria","931111111"], ["pep","912222222"], ["anna","93919391"], ... ["pep","66477333"], ["maria","665322888"]] >>> d = crea_agenda_reps(l) >>> d == {"maria":["931111111","665322888"], "pep":["912222222","66477333"], ... "anna":["93919391"]} True
Nota
Podeu descarregar el fitxer amb tests
test_crea_agenda_reps.txt.
Solució
Disposeu d’una solució al fitxer agenda.py.