Salta ai contenuti
Manuale LogoManuale Logo

Dizionari

Un dizionario è una raccolta di informazioni organizzate in coppie chiave → valore.

Puoi pensarlo come un vocabolario: cerchi una parola (la chiave) e ottieni la definizione (il valore). Una rubrica telefonica usa lo stesso principio.

"nome" → "Alice"
"eta" → 16
"citta" → "Roma"

I dizionari usano le parentesi graffe {} e coppie "chiave": valore separate da virgole:

studente = {
"nome": "Alice",
"eta": 16,
"classe": "3A"
}
vuoto = {} # dizionario senza elementi

Indichi la chiave tra parentesi quadre:

studente = {"nome": "Alice", "eta": 16, "classe": "3A"}
print(studente["nome"]) # Alice
print(studente["eta"]) # 16

Se la chiave non esiste, l’accesso con le parentesi quadre causa un errore. .get() restituisce invece None o un valore predefinito:

print(studente.get("cognome")) # None: nessun errore
print(studente.get("cognome", "N/D")) # N/D: valore di default

I dizionari sono modificabili. Assegnando un valore a una chiave esistente lo sostituisci; usando una chiave nuova aggiungi una coppia:

studente = {"nome": "Alice", "eta": 16}
studente["eta"] = 17 # modifica il valore esistente
studente["cognome"] = "Rossi" # aggiunge una nuova coppia
print(studente)
# {'nome': 'Alice', 'eta': 17, 'cognome': 'Rossi'}
studente = {"nome": "Alice", "eta": 16, "classe": "3A"}
del studente["classe"] # elimina la coppia "classe"
print(studente) # {'nome': 'Alice', 'eta': 16}
eta = studente.pop("eta") # rimuove e restituisce il valore
print(eta) # 16
print(studente) # {'nome': 'Alice'}
persona = {"nome": "Alice", "eta": 16, "citta": "Roma"}
# Tutte le chiavi
print(persona.keys()) # dict_keys(['nome', 'eta', 'citta'])
# Tutti i valori
print(persona.values()) # dict_values(['Alice', 16, 'Roma'])
# Tutte le coppie chiave-valore
print(persona.items()) # dict_items([('nome', 'Alice'), ('eta', 16), ('citta', 'Roma')])
# Verificare se una chiave esiste
print("nome" in persona) # True
print("cognome" in persona) # False
persona = {"nome": "Alice", "eta": 16, "citta": "Roma"}
# Solo le chiavi
for chiave in persona:
print(chiave) # nome, eta, citta
# Chiavi e valori insieme
for chiave, valore in persona.items():
print(f"{chiave}: {valore}")

Output:

nome: Alice
eta: 16
citta: Roma

I valori possono essere di qualsiasi tipo, compresi altri dizionari. Puoi così rappresentare strutture annidate:

classe = {
"Alice": {"eta": 16, "voto": 8},
"Bob": {"eta": 17, "voto": 7}
}
print(classe["Alice"]["voto"]) # 8
print(classe["Bob"]["eta"]) # 17