Diccionaris

Conceptes

Exemples

Valors literals de tipus dict.
{} # diccionari buit
{'a': 1, 'b': 5}
{'a': [1, 3, 5], 'b': [22, 35]}
{('a', 1): 3, ('b', 2): 34}
Funcions de conversió
>>> d = dict([('a', 1), ('b', 2)])
>>> d
{'a': 1, 'b': 2}
Funcions predefinides
>>> d = {'a': [1, 3, 5], 'b': [22, 35]}
>>> len(d) # nombre de claus
2
>>> max(d) # màxim de les claus
'b'
>>> min(d) # mínim de les claus
'a'
Accés per clau
>>> d = {'A': 10, 'B': 35, 'C': 23}
>>> d['C']
23
Mètode get()
>>> edats = {"Anna": 25, "Joan": 30, "Maria": 22}
>>> edats.get("Anna")
25
>>> edats.get("Pere") # Retorna None
>>> edats.get("Pere", 0) # Retorna 0 si no troba la clau
0
Operadors de pertinença
>>> 'A' in d
True
>>> 10 in d
False
>>> 10 not in d
True
Mètodes (vistes) keys(), values() i items()
>>> d = {'a': 1, 'b': 2, 'c':3}

>>> d.keys() # vista de les claus del dicc.
dict_keys(['a', 'b', 'c'])

>>> d.values() # vista dels valors del dicc.
dict_values([1, 2, 3])

>>> d.items() # vista de parelles (clau, valor) del dicc.
dict_items([('a', 1), ('b', 2), ('c', 3)])
Operadors relacionals: == i !=
>>> d = {'A': 10, 'B': 35}
>>> d == {'B': 35, 'A': 10} # tenen les mateixes parelles clau-valor
True
>>> d != {'A': 4, 'B': 35}
True
Inserció i modificació del valor associat a una clau
>>> d = {'A': 10, 'B': 35, 'C': 23}
>>> d['D'] = 74 # inserció
>>> d
{'A': 10, 'B': 35, 'C': 23, 'D': 74}
>>> d['B'] = 89  # modificació
>>> d
{'A': 10, 'B': 89, 'C': 23, 'D': 74}
>>> d['B'] = d['B'] + 1
>>> d['B']
90

>>> d2 = {'353': [10, 30, 35], '532': [32]}
>>> d2['532'].append(50)
>>> d2
{'353': [10, 30, 35], '532': [32, 50]}
Iteracions de dicccionari amb for
>>> dicc = {'A': 10,'E': 53,'I': 5}
>>> for clau in dicc:
...     print(clau,dicc[clau])
A 10
E 53
I 5
Diccionari per comprensió
>>> numeros = [1, 2, 3, 4, 5]
>>> quadrats = {n: n**2 for n in numeros}
>>> quadrats
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
>>> parells = {n: n**2 for n in numeros if n % 2 == 0}
>>> parells
{2: 4, 4: 16}
Còpia de diccionaris.
>>> d3 = {'353': [10, 30, 35], '532': [32]}
>>> d3nou = d3.copy()  # còpia superficial de diccionaris
>>> d3nou
{'353': [10, 30, 35], '532': [32]}
>>> d3nou is d3
False

Exercicis del tema

Referències