Site icon Tosolini.info

Python: i dizionari

In Python i dizionari sono simili alle liste ma hanno una coppia chiave : valore, che risulta essere molto utile in molteplici situazioni. Inizializziamo un dizionario che fungerà da esempio:

dizionario = {"chiave1" : "valore1", "chiave2" : "valore2", "numero": 10, "lista" : [1, "ciao", 2, 3]}

Come si può vedere nella chiave : valore possiamo mettere stringhe, interi, float e persino liste. Per richiamare i valori contenuti sarà sufficiente richiamare il dizionario e la chiave desiderata:

>>> dizionario["chiave1"]
'valore1'
>>> dizionario["lista"]
[1, 'ciao', 2, 3]
>>> 

Possiamo anche cercare di capire, tramite una risposta booleana, se una chiave esiste indipendentemente dal suo valore:

>>> "chiave2" in dizionario
True

Si possono anche estrarre tutte le chiavi, apponendo il metodo keys() al dizionario stesso, e chiaramente tutti i valori con il metodo values().

>>> dizionario.keys()
dict_keys(['chiave1', 'chiave2', 'numero', 'lista'])
>>> dizionario.values()
dict_values(['valore1', 'valore2', 10, [1, 'ciao', 2, 3]])

Chiamando solo il dizionario avremo chiaramente chiavi e valori, ma sarebbero poco interessanti da riutilizzare. Molto meglio se le chiavi valori diventassero delle tuple! Ecco allora che il metodo items() ci viene in aiuto:

>>> dizionario.items()
dict_items([('chiave1', 'valore1'), ('chiave2', 'valore2'), ('numero', 10), ('lista', [1, 'ciao', 2, 3])])

Arriviamo quindi al punto dell’articolo, come si fa ad estendere un dizionario aggiungendo coppie di chiavi : valori che non esistono a priori? Dovremo chiamare il nostro dizionario (che potrebbe anche essere vuoto) assegnando un nuovo valore dentro una parentesi quadra assegnando (con il simbolo uguale) il valore:

>>> dizionario["nuovo"] = "nuovo_valore"
>>> dizionario.items()
dict_items([('chiave1', 'valore1'), ('chiave2', 'valore2'), ('numero', 10), ('lista', [1, 'ciao', 2, 3]), ('nuovo', 'nuovo_valore')])

Se possiamo aggiungere possiamo anche levare, con il comando pop e la chiave che ci interessa. Nella versione 3 di Python possiamo anche eliminare l’ultimo valore inserito con popitem:

>>> dizionario.pop("lista")
[1, 'ciao', 2, 3]
>>> dizionario.items()
dict_items([('chiave1', 'valore1'), ('chiave2', 'valore2'), ('numero', 10), ('nuovo', 'nuovo_valore')])
>>> dizionario.popitem()
('nuovo', 'nuovo_valore')
>>> dizionario.items()
dict_items([('chiave1', 'valore1'), ('chiave2', 'valore2'), ('numero', 10)])

Infine esistono comandi totalmente distruttivi, come del e clear. Con del si elimina fisicamente il dizionario che non esisterà più, mentre clear lo svuota di tutte le coppie. Non ultimo è possibile clonare un dizionario con il metodo copy

del dizionario
dizionario.clear()
dizionario_copiato = dizionario.copy()

I dizionari sono interessanti perché per l’appunto possono essere facilmente manipolati anche in modo dinamico.

Exit mobile version