python dizionari strutture-dati

I Dizionari in Python

Obiettivi della pillola

Alla fine di questa pillola saprai:

  • creare e inizializzare dizionari (dict);
  • accedere, aggiungere, modificare e rimuovere coppie chiave-valore;
  • iterare su chiavi, valori e coppie;
  • utilizzare metodi utili come get, keys, values, items.

Cos’è un dizionario

Un dizionario è una struttura dati che associa a ogni chiave un valore. È simile a un “vocabolario”: ogni parola (chiave) ha la sua definizione (valore). In Python si definisce con le graffe { } usando la sintassi chiave: valore.

studente = {
    "nome": "Luca",
    "cognome": "Rossi",
    "eta": 17
}

Nota: Le chiavi devono essere uniche e di tipo immutabile (stringhe, numeri, tuple). I valori possono essere di qualsiasi tipo.

Accesso ai valori

print(studente["nome"])    # Luca
print(studente["eta"])     # 17

Se accedi a una chiave inesistente, Python genera un errore. Per evitarlo si usa get().

print(studente.get("classe", "non presente"))
# stampa "non presente"

Aggiungere e modificare

Aggiungere o modificare un elemento è molto semplice:

studente["classe"] = "5A"    # aggiunge nuova coppia
studente["eta"] = 18         # modifica valore esistente
print(studente)

Rimuovere elementi

pop() e del

studente.pop("cognome")    # rimuove chiave e restituisce il valore
del studente["classe"]     # elimina chiave senza restituire

clear()

studente.clear()           # svuota il dizionario
print(studente)            # {}

Iterare su un dizionario

materie = {"italiano": 7, "matematica": 8, "informatica": 9}

# scorrere le chiavi
for k in materie:
    print(k)

# scorrere i valori
for v in materie.values():
    print(v)

# scorrere coppie chiave-valore
for k, v in materie.items():
    print(k, "=", v)

Metodi utili

  • keys() → restituisce tutte le chiavi.
  • values() → restituisce tutti i valori.
  • items() → restituisce coppie chiave-valore.
  • update(dict2) → aggiunge o aggiorna più coppie da un altro dizionario.
info = {"nome": "Luca"}
info.update({"eta": 18, "citta": "Torino"})
print(info)   # {"nome": "Luca", "eta": 18, "citta": "Torino"}

Differenze con liste e set

  • Le liste gestiscono collezioni ordinate di valori accessibili con un indice numerico.
  • I set gestiscono insiemi di valori unici, senza ordine e senza indici.
  • I dizionari associano a ogni chiave un valore, permettendo ricerche veloci.
lista = ["Luca", "Marco"]
insieme = {"Luca", "Marco"}
dizionario = {"studente1": "Luca", "studente2": "Marco"}

In breve: usa un dict quando hai bisogno di associare una chiave a un valore, come una “rubrica” o un “registro”.