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
- Abbiamo un insieme di coppie e valore
- Le chiavi sono un insieme non ordinato
- Le chiavi devono essere uniche
- Le chiavi non possono essere modificate
- Per le chiavi possiamo usare qualsiasi tipo di dato immutabile
- Le
chiavi:valore
possono essere eliminate - I valori possono essere modificati
- I valori possono essere di qualsiasi tipo
- Due dizionari sono uguali se le coppie valore all’interno sono uguali indipendentemente dall’ordine
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 oppure not in
- clear()
- copy()
- get(chiave, default)
- items()
- keys()
- pop(chiave, default)
- setdefault()
- update(secondoDizionario)
- values()
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']