Dictionaries¶
El diccionari és el tipus associatiu predefinit de Python.
Un tipus associatiu associa claus a valors. Les claus han de ser de tipus immutables.
Per tant, els diccionaris són tipus compostos i mutables.
Creant diccionaris¶
Diccionari buit i afegint parelles clau-valor:
eng2cat = {} eng2cat['one'] = 'un' eng2cat['two'] = 'dos'
Llista de parelles clau-valor:
eng2cat = {'two': 'dos', 'one': 'un', 'three' : 'tres'}
Operacions¶
Pertinença: la clau pertany al diccionari?
'two' in eng2cat
Accés: consulta del valor associat a una clau.
eng2cat['two']
Modificació: modificar el valor associat a una clau.
eng2cat['two'] = 2
Esborrat: esborrar una parella clau-valor.
del eng2cat['two']
Longitud: nombre de parells clau-valor.
len(eng2cat)
Recorregut de diccionaris¶
Regorregut de les claus.
for clau in eng2cat: sentències
No són imprescindibles, però en alguns problemes poden resultar útils:
Recorregut de les parells clau-valor.
for clau, valor in eng2cat.items(): sentències
candidats.can_mes_votat(), topics/_exercises/dict/Directius/index 2.
Recorregut dels valors.
for valor in eng2cat.values(): sentències
candidats.vots_minim().
Conversió de tipus¶
De diccionari a llista:
La llista de les claus del diccionari:
>>> d = {1: 'u', 'dos': 2} >>> list(d) [1, 'dos']
La llista de les parelles clau-valor del diccionari:
>>> d = {1: 'u', 'dos': 2} >>> list(d.items()) [(1, 'u'), ('dos', 2)]
La llista dels valors del diccionari:
>>> d = {1: 'u', 'dos': 2} >>> list(d.values()) ['u', 2]
De llista a diccionari només és possible si els elements de la llista són parelles clau-valor.
>>> l = [('a', 3), ('b', 9), ('c', 5)] >>> dict(l) {'c': 5, 'a': 3, 'b': 9}
Àlies i còpies¶
Els diccionaris són mutables: l’assignació genera un àlies.
Com obtenir-ne una còpia? Mètode
copy().opposites = {'up': 'down', 'right': 'wrong', 'true': 'false'} alias = opposites copy = opposites.copy()
Exercicis¶
Creació de diccionaris: topics/_exercises/dict/Aparicions_de_lletres/index.
Funcions modificadores de diccionaris: topics/_exercises/dict/Botiga_de_roba/index 1.
Els valors són llistes: topics/_exercises/dict/Coral_1/index 1.
Relació de dos diccionaris:
candidats.vots_ingressos(),candidats.rics(), topics/_exercises/dict/Coral_1/index 2.