# Dizionario in Python: come funzionano le liste associative?

Nel [linguaggio di programmazione web](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggi-programmazione-web/ "Linguaggi programmazione web") Python, il dizionario è un tipo di dato importante che può essere usato per collegare tra loro termini e significati. Utilizzando coppie chiave-valore, si possono creare molte **tabelle, raccolte di dati o inventari**. Un dizionario in Python può essere usato anche con i [cicli for in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-su-python/), le [istruzioni if else in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/if-else-in-python/) e i [cicli while in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-while-in-python/ "Ciclo while in Python").

## Cos’è un dizionario in Python?

Un dizionario in Python è un tipo di dato che collega termini e significati tra loro. In questa struttura, **chiavi (keys) e valori (values) possono essere collegati**, memorizzati e recuperati successivamente. A volte, viene usato il termine “lista associativa” per riferirsi a un dizionario in Python, ma quest’ultimo è quello più corretto. Infatti, come in un dizionario, in cui un termine è associato a una spiegazione o traduzione corrispondente, anche un dizionario in Python crea una tabella di associazioni che non può contenere duplicati. Ogni chiave, quindi, è presente una volta sola.

## Dizionario in Python: struttura e interrogazione

Un dizionario in Python è sempre racchiuso tra parentesi graffe e può teoricamente contenere un numero qualsiasi di coppie chiave-valore. La chiave, messa tra virgolette, e il valore corrispondente sono collegati da due punti, mentre le coppie risultanti sono separate da virgole. Probabilmente avete già familiarità con questa notazione se avete seguito un [tutorial su Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tutorial-python/ "Tutorial Python"). Ad esempio, il codice si presenta così:

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

Il dizionario in Python viene letto inserendo la chiave corretta tra parentesi quadre. Di seguito la relativa notazione:

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

## Esempio di dizionario in Python

La struttura e la funzione del dizionario in Python possono essere spiegate bene con un semplice esempio. Nella struttura seguente, i Paesi e le capitali devono essere assegnati e riprodotti. Il dizionario in Python si presenta così:

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

Se desiderate interrogare un elemento specifico, utilizzate le parentesi quadre:

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

Il risultato in questo caso sarebbe il valore appartenente alla chiave “FR”, cioè “Parigi”.

### Struttura alternativa

In alternativa, è possibile creare un dizionario in Python senza contenuto e poi riempirlo. Per fare ciò, viene sempre creato prima un dizionario vuoto, che si presenta così:

```none
capitals = { }
```

Ora riempite il dizionario:

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

Se ora interrogate il dizionario in Python “capitals”, otterrete il seguente risultato:

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

## Modificare il dizionario in Python successivamente

Potete modificare il dizionario in Python anche in un secondo momento. Ad esempio, per aggiungere coppie chiave-valore, scrivete:

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

Il risultato corrispondente è:

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

Per modificare un valore all’interno di una coppia chiave-valore, utilizzate il codice seguente:

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

Il risultato è quindi di nuovo:

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

## Rimuovere le coppie chiave-valore dal dizionario in Python

Per rimuovere successivamente una coppia chiave-valore dal dizionario Python, esistono tre possibilità: del, pop e popitem.

### Rimozione con del

Un semplice inventario è adatto come esempio per il metodo del. Supponiamo che all’apertura un panificio offra 100 panini, 25 pagnotte e 20 cornetti. Il dizionario in Python corrispondente apparirebbe quindi così:

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

Se la panetteria ora vende tutti i cornetti e vuole cancellarli dal suo elenco, utilizza il comando del:

```none
del stock["croissants"]
print(stock)
```

Con questo metodo, tuttavia, dovete assicurarvi di usare sempre il comando del insieme a una coppia chiave-valore. Altrimenti, l’intero dizionario in Python verrà cancellato, un problema che si verifica abbastanza frequentemente.

### Rimozione con pop

Il secondo metodo per rimuovere le coppie chiave-valore da un dizionario in Python è dato da pop. Il valore rimosso viene memorizzato in una nuova variabile. Il funzionamento è il seguente:

```none
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:

```none
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 dizionario in Python. Ne risulta il codice seguente:

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

Il risultato si presenta quindi così:

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

## Altri metodi per il dizionario in Python

Esistono diversi altri metodi che funzionano con un dizionario in Python. Di seguito vi presentiamo un elenco delle opzioni più importanti:

<table>
  <thead>
    <tr>
      <th>Metodo</th>
      <th>Descrizione</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Clear</td>
      <td>clear rimuove tutte le coppie chiave-valore dal dizionario in Python.</td>
    </tr>
    <tr>
      <td>Copy</td>
      <td>copy crea una copia del dizionario in memoria.</td>
    </tr>
    <tr>
      <td>Get</td>
      <td>Con get, il valore è determinato dall’immissione della chiave.</td>
    </tr>
    <tr>
      <td>Keys</td>
      <td>Con keys leggete le chiavi del dizionario.</td>
    </tr>
    <tr>
      <td>Update</td>
      <td>Con update ampliate un dizionario in Python con un altro. Se ci sono chiavi duplicate, vengono sovrascritte nel dizionario allegato.</td>
    </tr>
    <tr>
      <td>Values</td>
      <td>Con values interrogate tutti i valori del dizionario.</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dizionari-in-python/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dizionari-in-python/) for AI/LLM consumption.