Dizionari in Python

Autore:[Antonio Gallonetto]

Un dizionario è una sequenza non ordinata di coppie chiave valore. I valori all’interno del dizionario si possono modificare.

Caratteristiche principali dei dizionari

Sintassi per la dichiarazione di un dizionario

nomeDizionario={chiave1:valore1,chiave2:valore2,...,chiaven:valoren}

Dichiarazione di un dizionario vuoto

nomeDizionario={}

Esempi di Dizionari

utente1={"Nome":"Aldo","Cognome":"Rossi","eta":75}
mycript={"a":"80","b":"55","c":"38","d":"73","e":"82","f":"08","g":"09","h":"62"}

Estrazione di un elemento

elementoEstratto=nomeDizionario[chiave]

Cambiare il valore di un elemento

nomeDizionario[chiave]=nuovoValoreElemento

Esempio

mycript={"a":"80","b":"55","c":"38","d":"73","e":"82","f":"08","g":"09","h":"62"}
print(mycript)
extractValue=int(mycript["d"])-1
mycript["f"]=str(extractValue)
print(mycript) 
## ris {'a': '80', 'b': '55', 'c': '38', 'd': '73', 'e': '82', 'f': '72', 'g': '09', 'h': '62'}

Operazioni e Metodi dei dizionari

in e not in

Verifica se una chiave è presente nel dizionario

Sintassi

valoreChiave in dizionario oppure valoreChiave not in dizionario

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
my_string = input("Inserisci il nome della provincia: ")
if my_string.lower() in province:
    print("La provincia è presente nel dizionario")
else:
    print("La provincia NON è presente nel dizionario")

clear()

Rimuove tutte le coppie chiave:valore

Sintassi di clear()

nomeDizionario.clear()

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
province.clear()
print(province) ## risultato {}

copy()

Metodo che restituisce un oggetto equivalente al dizionario dato

Sintassi

nuovoDizionario=nomeDizionario.copy()

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
provinceMin=province.copy()
for provincia in province.keys() :
    provinciaTemp=province[provincia]
    provinceMin[provincia]=provinciaTemp.lower()
print(province)    ## ris {'belluno': 'BL', 'treviso': 'TV', 'milano': 'MI', 'modena': 'MO', 'ravenna': 'ra', 'trieste': 'TS'}
print(provinceMin) ## ris {'belluno': 'bl', 'treviso': 'tv', 'milano': 'mi', 'modena': 'mo', 'ravenna': 'ra', 'trieste': 'ts'}

get(chiave, default)

Questo metodo restituisce il valore corrispondente alla chiave se presente altrimenti restituisce un valore di default

Sintassi

valore=nomeDizionario.get(chiave,valoreDiDefault)

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
my_string = input("Inserisci il nome della provincia: ")
risultato=province.get(my_string.lower(),"Provincia non presente nel dizionario")
print("Sigla:  "+risultato) ## Se presente stampa la sigla se non presente stampa  "Provincia non presente nel dizionario"

items()

Questo metodo ritorna come un insieme di tuple gli elementi contenuti nel dizionario.

Sintassi

lista=nomeDizionario.items()

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
lista=province.items()
print(lista) ## dict_items([('belluno', 'BL'), ('treviso', 'TV'), ('milano', 'MI'), ('modena', 'MO'), ('ravenna', 'ra'), ('trieste', 'TS')])

pop(chiave,default)

Rimuove nel dizionario la coppia chiave:valore, restituisce il valore se presente nel dizionario altrimenti restituisce un valore standard

Sintassi

valore=nomeDizionario(chiave,valoreStandard)

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
my_string = input("Inserisci il nome della provincia: ")
risultato=province.get(my_string.lower(),"Provincia non presente nel dizionario")
print("Sigla:  "+risultato)

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
my_string = input("Inserisci il nome della provincia da rimuovere: ")
retVal=province.pop(my_string.lower(),-1)
if retVal==-1:
    print("Provincia non presente nel dizionario")
else:
    print("La provincia "+my_string+" : "+retVal+" è stata rimossa correttamente")

setdefault(chiave,valore)

Questo metodo estrae dal dizionario il valore corrispondente a chiave, se non è presente inserisce nel dizionario la coppia chiave,valore e restituisce valore

Sintassi

valoreDiRitorno=nomeDizionario.setdefault(chiave,valore)

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
my_string = input("Inserisci il nome della provincia da estrarre o inserire: ")
retVal=province.setdefault(my_string.lower(),"?") ## se inseriamo "torino"
print(province) ## {"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS","torino":"?"}
print(retVal) ## stampa ?

update(secondoDizionario)

Aggiunge ad un dizionario il contenuto di un secondoDizionario

Sintassi

nomeDizionario.update(secondoDizionario)

Esempio

province={"belluno":"BL","treviso":"TV"}
altreProvince={"milano":"MI","modena":"MO","ravenna":"ra","trieste":"TS"}
province.update(altreProvince)
print(province) ##{'belluno': 'BL', 'treviso': 'TV', 'milano': 'MI', 'modena': 'MO', 'ravenna': 'ra', 'trieste': 'TS'}

values()

Restituisce i valori presenti nel dizionario

Sintassi

valoriDelDizionario=nomeDizionario.values()

Esempio

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"RA","trieste":"TS"}
valori=province.values()
print(valori) ## risultato dict_values(['BL', 'TV', 'MI', 'MO', 'RA', 'TS'])

Conversione di dict_values

Sia in items() che in values() abbiamo nel primo caso dict_items e nel secondo caso dict_values, ed è una visualizzazione come lista non si possono applicare le operazioni e i metodi della lista. In questo caso si può convertire a lista con il comando list() Esempio:

province={"belluno":"BL","treviso":"TV","milano":"MI","modena":"MO","ravenna":"RA","trieste":"TS"}
valori=province.values()
print(valori)
listaValori=list(valori)
print(listaValori[-1:]) ## risultato ['TS']

Argomenti correlati: