Diccionaris¶
Conceptes¶
valor literal de tipus
dict, diccionari buitoperacions de consulta d’un diccionari:
operador relacional:
==, !=operacions de modificació d’un diccionari:
inserció del valor associat a una clau
modificació del valor associat a una clau
algorisme de diccionaris: esquemes de recorregut i cerca per clau
còpia d’un objecte: còpia superficial i còpia profunda
mètode
copy()
Exemples¶
{} # 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
>>> 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
>>> 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¶
- Agenda bàsica
- Analítiques
- Aparicions de lletres
- Botiga de roba
- Candidats
- Colors RGB
- Coral_1
- Corrector de llenguatge
- Dades meteorològiques
- Delegats de classe
- Entrades de teatre 2
- Estels
- Estocs
- Estudiants
- Fauna dels Ports
- Gossos
- Hotel
- Llistar per inicials
- Megatló per equips
- Notes excel·lents_1
- Perfums
- Perruqueria_2
- Tauler d’escacs
- Tipus producte
- Ulleres
- Xifratge
Referències¶
Capítol Diccionaris de Informàtica: notes de classe
Capítol 11 del llibre Introducció a la programació
Capítol Conditionals del llibre How to Think Like a Computer Scientist
Capítol Dictionaries de The Python Tutorial.
Capítol Mapping Types — dict de The Python Standard Library.