Skip to content

Dizionari

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

Funziona come un vero vocabolario: cerchi una parola (la chiave) e trovi la sua definizione (il valore). Oppure come una rubrica telefonica: cerchi il nome di una persona e trovi il suo numero.

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

I dizionari si scrivono con le parentesi graffe {}, con coppie "chiave": valore separate da virgole:

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

Usi il nome della chiave tra parentesi quadre, come se fosse un indice:

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

Se la chiave non esiste, ottieni un errore. Per evitarlo, usa .get(), che restituisce None (o un valore di default) invece di causare errore:

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

I dizionari sono modificabili. Assegni un valore a una chiave: se la chiave esiste, modifica il valore; se non esiste, crea una nuova 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 qualsiasi cosa, anche altri dizionari. Utile per rappresentare strutture complesse:

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