Diccionaris en Python
Un diccionari és una estructura de dades que ens permet guardar diversos valors dins d’una mateixa variable.
La diferència respecte a llistes i tuples és molt important:
En un diccionari, els valors no es guarden per posició, sinó per clau.
Cada element té:
clau : valor
Crear un diccionari
Un diccionari es crea amb claudàtors {}.
alumne = {
"nom": "Anna",
"edat": 16,
"curs": "SMX"
}
Cada element està format per:
"clau": valor
Les claus solen ser textos.
Accedir als valors
Per accedir a un valor, utilitzem la seua clau.
alumne = {
"nom": "Anna",
"edat": 16,
"curs": "SMX"
}
print(alumne["nom"])
print(alumne["edat"])
Ja no usem índexs com en les llistes.
Diccionari buit
També podem crear un diccionari buit.
d = {}
Després podem afegir elements.
Afegir elements
Per afegir un nou element:
alumne = {}
alumne["nom"] = "Joan"
alumne["edat"] = 17
print(alumne)
Modificar un valor
Si la clau ja existeix, el valor es modifica.
alumne["edat"] = 18
Longitud d’un diccionari
Per saber quants elements té:
print(len(alumne))
Recórrer un diccionari
Recórrer les claus
alumne = {
"nom": "Anna",
"edat": 16,
"curs": "SMX"
}
for clau in alumne:
print(clau)
Recórrer els valors
for clau in alumne:
print(alumne[clau])
Recórrer clau i valor
for clau in alumne:
print(clau, ":", alumne[clau])
(Encara no usem .items() si no l’hem vist.)
Exemple pràctic senzill
persona = {}
persona["nom"] = input("Nom: ")
persona["edat"] = int(input("Edat: "))
print("Nom:", persona["nom"])
print("Edat:", persona["edat"])
Diferència clara amb llistes
Llista:
notes = [6, 8, 7]
print(notes[0])
Diccionari:
notes = {
"mate": 6,
"angles": 8,
"historia": 7
}
print(notes["mate"])
Errors típics amb diccionaris
Accedir a una clau que no existeix
alumne = {"nom": "Anna"}
print(alumne["edat"]) # error
Confondre amb índex
print(alumne[0]) # error
Els diccionaris no funcionen amb posicions.
Resum
- Un diccionari guarda valors per clau.
- Es crea amb
{}. - Cada element és
clau: valor. - S’accedeix amb
diccionari["clau"]. len()indica quants elements té.- Es pot recórrer amb
for.