Nel lin­guag­gio di pro­gram­ma­zio­ne web Python, il di­zio­na­rio è un tipo di dato im­por­tan­te che può essere usato per collegare tra loro termini e si­gni­fi­ca­ti. Uti­liz­zan­do coppie chiave-valore, si possono creare molte tabelle, raccolte di dati o inventari. Un di­zio­na­rio in Python può essere usato anche con i cicli for in Python, le istru­zio­ni if else in Python e i cicli while in Python.

API IONOS per svi­lup­pa­to­ri
Gestisci i tuoi prodotti di hosting tramite la nostra potente API
  • Gestione record DNS
  • Am­mi­ni­stra­zio­ne SSL
  • Do­cu­men­ta­zio­ne API

Cos’è un di­zio­na­rio in Python?

Un di­zio­na­rio in Python è un tipo di dato che collega termini e si­gni­fi­ca­ti tra loro. In questa struttura, chiavi (keys) e valori (values) possono essere collegati, me­mo­riz­za­ti e re­cu­pe­ra­ti suc­ces­si­va­men­te. A volte, viene usato il termine “lista as­so­cia­ti­va” per riferirsi a un di­zio­na­rio in Python, ma quest’ultimo è quello più corretto. Infatti, come in un di­zio­na­rio, in cui un termine è associato a una spie­ga­zio­ne o tra­du­zio­ne cor­ri­spon­den­te, anche un di­zio­na­rio in Python crea una tabella di as­so­cia­zio­ni che non può contenere duplicati. Ogni chiave, quindi, è presente una volta sola.

Di­zio­na­rio in Python: struttura e in­ter­ro­ga­zio­ne

Un di­zio­na­rio in Python è sempre racchiuso tra parentesi graffe e può teo­ri­ca­men­te contenere un numero qualsiasi di coppie chiave-valore. La chiave, messa tra vir­go­let­te, e il valore cor­ri­spon­den­te sono collegati da due punti, mentre le coppie ri­sul­tan­ti sono separate da virgole. Pro­ba­bil­men­te avete già fa­mi­lia­ri­tà con questa notazione se avete seguito un tutorial su Python. Ad esempio, il codice si presenta così:

ages = {'Jim': 42, 'Jack': 13, 'John': 69}

Il di­zio­na­rio in Python viene letto inserendo la chiave corretta tra parentesi quadre. Di seguito la relativa notazione:

age_jim = ages['Jim']
assert age_jim == 42

Esempio di di­zio­na­rio in Python

La struttura e la funzione del di­zio­na­rio in Python possono essere spiegate bene con un semplice esempio. Nella struttura seguente, i Paesi e le capitali devono essere assegnati e ri­pro­dot­ti. Il di­zio­na­rio in Python si presenta così:

capitals = { "UK": "London", "FR": "Paris", "DE": "Berlin" }

Se de­si­de­ra­te in­ter­ro­ga­re un elemento specifico, uti­liz­za­te le parentesi quadre:

capitals["FR"]
assert capitals["FR"] == 'Paris'

Il risultato in questo caso sarebbe il valore ap­par­te­nen­te alla chiave “FR”, cioè “Parigi”.

Struttura al­ter­na­ti­va

In al­ter­na­ti­va, è possibile creare un di­zio­na­rio in Python senza contenuto e poi riempirlo. Per fare ciò, viene sempre creato prima un di­zio­na­rio vuoto, che si presenta così:

capitals = { }

Ora riempite il di­zio­na­rio:

capitals["UK"] = "London"
capitals["FR"] = "Paris"
capitals["DE"] = "Berlin"

Se ora in­ter­ro­ga­te il di­zio­na­rio in Python “capitals”, otterrete il seguente risultato:

{ "UK": "London", "FR": "Paris", "DE": "Berlin" }

Mo­di­fi­ca­re il di­zio­na­rio in Python suc­ces­si­va­men­te

Potete mo­di­fi­ca­re il di­zio­na­rio in Python anche in un secondo momento. Ad esempio, per ag­giun­ge­re coppie chiave-valore, scrivete:

capitals[ "IT" ] = "Roma"
print(capitals)

Il risultato cor­ri­spon­den­te è:

{ "UK": "London", "FR": "Paris", "DE": "Berlin", "IT": "Roma" }

Per mo­di­fi­ca­re un valore all’interno di una coppia chiave-valore, uti­liz­za­te il codice seguente:

capitals = { "UK": "London", "FR": "Paris", "DE": "Berlin", "IT": "???" }
assert capitals["IT"] == "???"
capitals["IT"] = "Roma"
assert capitals["IT"] == "Roma"

Il risultato è quindi di nuovo:

{ "UK": "London", "FR": "Paris", "DE": "Berlin", "IT": "Roma" }

Rimuovere le coppie chiave-valore dal di­zio­na­rio in Python

Per rimuovere suc­ces­si­va­men­te una coppia chiave-valore dal di­zio­na­rio Python, esistono tre pos­si­bi­li­tà: del, pop e popitem.

Rimozione con del

Un semplice in­ven­ta­rio è adatto come esempio per il metodo del. Sup­po­nia­mo che all’apertura un panificio offra 100 panini, 25 pagnotte e 20 cornetti. Il di­zio­na­rio in Python cor­ri­spon­den­te ap­pa­ri­reb­be quindi così:

stock = { "rolls": 100, "breads": 25, "croissants": 20 }

Se la pa­net­te­ria ora vende tutti i cornetti e vuole can­cel­lar­li dal suo elenco, utilizza il comando del:

del stock["croissants"]
print(stock)

Con questo metodo, tuttavia, dovete as­si­cu­rar­vi di usare sempre il comando del insieme a una coppia chiave-valore. Al­tri­men­ti, l’intero di­zio­na­rio in Python verrà can­cel­la­to, un problema che si verifica ab­ba­stan­za fre­quen­te­men­te.

Rimozione con pop

Il secondo metodo per rimuovere le coppie chiave-valore da un di­zio­na­rio in Python è dato da pop. Il valore rimosso viene me­mo­riz­za­to in una nuova variabile. Il fun­zio­na­men­to è il seguente:

marbles = { "red": 13, "green": 19, "blue": 7, "yellow": 21}
red_marbles = marbles.pop("red")
print(f"We've removed {red_marbles} red marbles.")
print(f"Remaining marbles are: {marbles}")

Il risultato si presenta quindi come segue:

We've removed 13 red marbles.
Remaining marbles are: {'green': 19, 'blue': 7, 'yellow': 21}

Rimozione con popitem

Con popitem rimuovete l’ultima coppia chiave-valore dal di­zio­na­rio in Python. Ne risulta il codice seguente:

last = marbles.popitem()
print(last)
print(marbles)

Il risultato si presenta quindi così:

('yellow', 21)
{ "Uno": 1, "Due": 2, "Tre": 3 }

Altri metodi per il di­zio­na­rio in Python

Esistono diversi altri metodi che fun­zio­na­no con un di­zio­na­rio in Python. Di seguito vi pre­sen­tia­mo un elenco delle opzioni più im­por­tan­ti:

Metodo De­scri­zio­ne
Clear clear rimuove tutte le coppie chiave-valore dal di­zio­na­rio in Python.
Copy copy crea una copia del di­zio­na­rio in memoria.
Get Con get, il valore è de­ter­mi­na­to dall’im­mis­sio­ne della chiave.
Keys Con keys leggete le chiavi del di­zio­na­rio.
Update Con update ampliate un di­zio­na­rio in Python con un altro. Se ci sono chiavi duplicate, vengono so­vra­scrit­te nel di­zio­na­rio allegato.
Values Con values in­ter­ro­ga­te tutti i valori del di­zio­na­rio.
Vai al menu prin­ci­pa­le