Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni9 pagine

Dizionari Python

Il documento fornisce una guida dettagliata sui dizionari in Python, spiegando la loro definizione, utilizzo e manipolazione. Vengono trattati vari aspetti come l'ordinamento, la verifica della presenza di elementi, l'estrazione, la modifica, l'aggiunta e l'eliminazione di chiavi e valori. Inoltre, viene introdotta la dictionary comprehension e le principali funzioni e metodi associati ai dizionari.

Caricato da

fmonge
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni9 pagine

Dizionari Python

Il documento fornisce una guida dettagliata sui dizionari in Python, spiegando la loro definizione, utilizzo e manipolazione. Vengono trattati vari aspetti come l'ordinamento, la verifica della presenza di elementi, l'estrazione, la modifica, l'aggiunta e l'eliminazione di chiavi e valori. Inoltre, viene introdotta la dictionary comprehension e le principali funzioni e metodi associati ai dizionari.

Caricato da

fmonge
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

I dizionari in Python

In questo tutorial imparerai che cosa sono i dizionari in Python e come manipolarli per gestire
coppie di valori.

Indice
• Definizione: che cosa sono i dizionari in Python?
• Come ordinare gli elementi di un dizionario in Python
• Come verificare se un elemento è presente nel dizionario
• Come estrarre gli elementi di un dizionario in Python
• Come modificare gli elementi dei dizionari in Python
• Come aggiungere elementi ai dizionari in Python
• Come eliminare elementi dai dizionari in Python
• Definizione: che cos’è la dictionary comprehension
• Le principali funzioni da applicare ai dizionari in Python
• Ulteriori metodi da applicare ai dizionari in Python

Definizione: che cosa sono i dizionari in Python?


Un dizionario (Python dictionary) è una sequenza di coppie di elementi separati da una virgola e
racchiusi all’interno di due parentesi graffe { }.
Ciascuna coppia è composta da una chiave (key) e da un valore (value) che sono separati tra loro
dal simbolo :.
I valori possono essere di qualsiasi tipo, mentre le chiavi:
• devono essere un dato immutabile (numeri, stringhe, tuple o frozenset);
• non possono ripetersi (in altre parole, sono uniche).
Per comprendere cosa sono i dizionari in Python, ripensa ad un qualunque dizionario bilingue:
questi non sono altro che una sequenza di termini (chiavi) a cui sono associate le relative traduzioni
(valori).
Esempio: Python dictionary

1 # dizionario composto da stringhe


2 ita_eng = {'gatto': 'cat', 'cane': 'dog', 'uccello': 'bird'}
3 # dizionario composto da stringhe, numeri e liste
4 studente = {'nome': 'Alessandro', 'anni': 28, 'voti': [6.5, 7, 8]}

A cosa servono i dizionari


I dizionari, a differenza di tutte le altre tipologie di elenchi (liste, tuple e set), ti consentono di
memorizzare coppie di elementi anziché elementi singoli.
Ciò è particolarmente utile per accedere in modo molto rapido alle informazioni.
Infatti, per estrarre un qualunque valore da un dizionario ti basterà richiamare la relativa chiave.
Facciamo un esempio in cui, per svolgere la stessa operazione, utilizzeremo dapprima una lista e
poi un dizionario: ipotizziamo che tu debba mostrare la traduzione di cane.
Esempio: Python list vs dictionary

1 # lista
2 ita_eng = [['gatto', 'cat'], ['cane', 'dog'], ['uccello', 'bird']]
3 print(ita_eng[1][1])
4 # dizionario
5 ita_eng = {'gatto': 'cat', 'cane': 'dog', 'uccello': 'bird'}
6 print(ita_eng['cane'])

OUTPUT
dog

L’uso del dizionario è nettamente più pratico rispetto alle liste perché, anziché doverti ricordare la
posizione dell’elemento, è sufficiente indicare la chiave a cui è accoppiato ['cane'].

Come ordinare gli elementi di un dizionario in Python


Come ordinare un dizionario in funzione delle chiavi
Per ordinare gli elementi di un dizionario in funzione delle sue chiavi devi:
• estrarre una lista ordinata delle chiavi utilizzando la funzione sorted() e il metodo keys();
• scorrere la lista che hai appena realizzato e compilare il nuovo dizionario.
Esempio: How to sort Python dictionary by key (ascending)

1 dizionario = {'c': 20, 'a': 10, 'b': 30}


2 dizionario_ordinato = {}
3 # estraggo la lista di chiavi e la ordino
4 chiavi = sorted([Link]())
5 # scorro la lista appena realizzata
6 for chiave in chiavi:
7 # individuo il valore corrispondente alla chiave
8 valore = dizionario[chiave]
9 # aggiungo la coppia chiave/valore al nuovo dizionario
10 dizionario_ordinato[chiave] = valore
11 # mostro il contenuto del nuovo dizionario
12 print(dizionario_ordinato)

OUTPUT
{'a': 10, 'b': 30, 'c': 20}

Per ordinare gli elementi in senso decrescente ti basta aggiungere il parametro reverse = True
all’interno delle parentesi tonde di sorted().
Esempio: How to sort Python dictionary by key (descending)

1 dizionario = {'c': 20, 'a': 10, 'b': 30}


2 dizionario_ordinato = {}
3 # estraggo la lista di chiavi e la ordino
4 chiavi = sorted([Link](), reverse=True)
5 # scorro la lista appena realizzata
6 for chiave in chiavi:
7 # individuo il valore corrispondente alla chiave
8 valore = dizionario[chiave]
9 # aggiungo la coppia chiave/valore al nuovo dizionario
10 dizionario_ordinato[chiave] = valore
11 # mostro il contenuto del nuovo dizionario
12 print(dizionario_ordinato)

OUTPUT
{'c': 20, 'b': 30, 'a': 10}

Come ordinare un dizionario in funzione dei valori


Per ordinare gli elementi di un dizionario in funzione dei suoi valori devi:
• estrarre una lista ordinata (in funzione dei valori) di coppie chiave/valore utilizzando la
funzione sorted() e il metodo items();
• scorrere la lista che hai appena realizzato e compilare il nuovo dizionario.
Esempio: How to sort Python dictionary by value

1 dizionario = {'c': 20, 'a': 10, 'b': 30}


2 dizionario_ordinato = {}
3 # estraggo una lista ordinata di coppie chiave/valore
4 chiavi_valori = sorted([Link](), key = lambda x: x[1])
5 # scorro la lista appena realizzata
6 for chiave, valore in chiavi_valori:
7 # compilo il nuovo dizionario
8 dizionario_ordinato[chiave] = valore
9 # mostro il contenuto del nuovo dizionario
10 print(dizionario_ordinato)

OUTPUT
{'a': 10, 'c': 20, 'b': 30}

Analogamente a quanto visto nel precedente paragrafo, per ordinare gli elementi in
senso decrescente ti basta aggiungere il parametro reverse = True all’interno delle
parentesi tonde di sorted().

Come verificare se un elemento è presente nel dizionario


Per verificare se una chiave è presente nel dizionario, devi utilizzare l’operatore in (Python
membership operator).
In questo modo è come se stessi domandando al tuo computer: “la chiave X è nel dizionario Y?”
Il computer mostrerà True se è presente oppure False se assente.
Ad esempio, vuoi sapere se il dizionario “ita_eng” contiene la chiave “gatto”?
Ricordati che Python è case sensitive, ovvero distingue tra maiuscole
e minuscole. Cercare gatto è diverso dal cercare Gatto oppure GATTO.

Esempio: Python membership operator

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 print('gatto' in ita_eng)
3 print('Gatto' in ita_eng)

OUTPUT
True
False
Purtroppo non esiste un metodo universale per verificare se un valore è presente nel dizionario,
perché dipende dalla sua tipologia.
Dovrai trovare di volta in volta una soluzione che si adatti alla tua esigenza.

Come estrarre gli elementi di un dizionario in Python


Come estrarre le chiavi di un dizionario
Per estrarre una lista di tutte le chiavi che compongono un dizionario, devi:
• isolare le chiavi con il metodo keys();
• salvarle in una lista con il metodo list().
Esempio: Python keys() method

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 chiavi = list(ita_eng.keys())
3 print(chiavi)

OUTPUT
['gatto', 'cane']

Come estrarre i valori di un dizionario


Per estrarre una lista di tutti i valori che compongono un dizionario, devi:
• isolare i valori con il metodo values();
• salvarli in una lista con il metodo list().
Esempio: Python values() method

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 valori = list(ita_eng.values())
3 print(valori)

OUTPUT
['cat', 'dog']

Come estrarre i valori associati ad una chiave specifica


Per estrarre i valori associati ad una chiave specifica, devi utilizzare il metodo get() e inserire
all’interno delle sue parentesi tonde la chiave in questione.
Esempio: Python get() method

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 # estraggo la traduzione di 'gatto'
3 print(ita_eng.get('gatto'))
4 # estraggo la traduzione di un termine inesistente
5 print(ita_eng.get('leone'))

OUTPUT
cat
None

In alternativa, potresti indicare la chiave all’interno di due parentesi quadre [ ].


Tuttavia, lo svantaggio di questa soluzione è che, nel caso di chiave inesistente, Python blocca
l’esecuzione del programma mostrando un messaggio di errore.
Esempio: How to access elements from Python dictionary

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 # estraggo la traduzione di 'gatto'
3 print(ita_eng['gatto'])
4 # estraggo la traduzione di un termine inesistente
5 print(ita_eng['leone'])

OUTPUT
cat
Traceback (most recent call last):
File "/.../.../Desktop/[Link]", line 5, in <module>
print(ita_eng['leone'])
KeyError: 'leone'

Come modificare gli elementi dei dizionari in Python


Come modificare le chiavi di un dizionario
Per modificare la chiave di un dizionario devi:
• indicare la nuova chiave all’interno di due parentesi quadre [ ];
• rimuovere quella vecchia utilizzando il metodo pop().
Esempio: How to change Python dictionary's keys

1 ita_eng = {'leone': 'cat', 'cane': 'dog'}


2 ita_eng['gatto'] = ita_eng.pop('leone')
3 print(ita_eng)

OUTPUT
{'cane': 'dog', 'gatto': 'cat'}

Come modificare i valori di un dizionario


Per modificare i valori di un dizionario devi:
• selezionare la chiave a cui sono assegnati i vecchi valori;
• assegnarle i nuovi valori.
Esempio: How to change Python dictionary's values

1 ita_eng = {'gatto': 'lion', 'cane': 'dog'}


2 ita_eng['gatto'] = 'cat'
3 print(ita_eng)

OUTPUT
{'gatto': 'cat', 'cane': 'dog'}

Come aggiungere elementi ai dizionari in Python


Per aggiungere una nuova coppia chiave/valore devi indicare la nuova chiave e assegnarle i
relativi valori.
Esempio: How to change Python dictionary's values

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 ita_eng['uccello'] = 'bird'
3 print(ita_eng)

OUTPUT
{'gatto': 'cat', 'cane': 'dog', 'uccello': 'bird'}

A differenza delle liste, i dizionari non possono essere concatenati.


Se ci provassi, Python ti mostrerebbe il seguente messaggio di errore.
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'

1 ita_eng = {'gatto': 'cat'} + {'cane': 'dog'}

OUTPUT
Traceback (most recent call last):
File "/.../.../Desktop/[Link]", line 1, in <module>
ita_eng = {'gatto': 'cat'} + {'cane': 'dog'}
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'

Come eliminare elementi dai dizionari in Python


Come eliminare una chiave da un dizionario
Per eliminare una chiave e tutti i suoi valori puoi utilizzare pop() oppure del.
Esempio: How to remove Python dictionary's elements

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 ita_eng.pop('gatto') # del ita_eng['gatto']
3 print(ita_eng)

OUTPUT
{'cane': 'dog'}

Come eliminare un valore da un dizionario


Per eliminare un valore associato ad una chiave, devi utilizzare:
• pop() oppure del se conosci la posizione dell’elemento da eliminare.
Esempio: Python pop() method

1 ita_eng = {'gatto': ['cat', 'dog'], 'cane': 'dog'}


2 ita_eng['gatto'].pop(-1) # del ita_eng['gatto'][-1]
3 print(ita_eng)

OUTPUT
{'gatto': ['cat'], 'cane': 'dog'}

• remove() se conosci il valore dell’elemento da eliminare.


Esempio: Python remove() method

1 ita_eng = {'gatto': ['cat', 'dog'], 'cane': 'dog'}


2 ita_eng['gatto'].remove('dog')
3 print(ita_eng)
OUTPUT
{'gatto': ['cat'], 'cane': 'dog'}

Come eliminare tutti gli elementi di un dizionario


Per eliminare tutti gli elementi di un dizionario, devi utilizzare clear().
Esempio: Python clear() method

1 ita_eng = {'gatto': ['cat', 'dog'], 'cane': 'dog'}


2 ita_eng.clear()
3 print(ita_eng)

OUTPUT
{}

Come eliminare un dizionario


Per eliminare il dizionario stesso, devi utilizzare la keyword del seguita dal nome della variabile in
cui lo hai salvato.
Esempio: Python del statement

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 del ita_eng

Definizione: che cos’è la dictionary comprehension


La dictionary comprehension è una sintassi semplice ed elegante che ti consente di creare un
nuovo dizionario a partire da un iterabile (stringa, lista, tupla, set o dizionario).
Di seguito un esempio: supponi di avere a disposizione una lista A contenente dei numeri e di voler
realizzare un dizionario B che contenga i quadrati di questi numeri.
Esempio: Python dictionary comprehension

1 A = [1, 2, 3]
2 B = {x: x ** 2 for x in A}
3 print(B)

OUTPUT
{1: 1, 2: 4, 3: 9}

Le principali funzioni da applicare ai dizionari in Python


dict() crea un nuovo dizionario.
Esempio: Python dict() function

1 # Creo un dizionario vuoto


2 ita_eng = dict()
3 print(ita_eng)
4 # Creo un dizionario con dei valori
5 ita_eng = dict(gatto = 'cat', cane = 'dog')
6 print(ita_eng)
OUTPUT
{}
{'gatto': 'cat', 'cane': 'dog'}

len() indica il numero di chiavi che compongono il dizionario.


Esempio: Python len() function

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 print(len(ita_eng))

OUTPUT
2

Ulteriori metodi da applicare ai dizionari in Python


copy() crea una copia del dizionario.
Esempio: Python copy() method

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 ita_eng_new = ita_eng.copy()
3 print(ita_eng_new)

OUTPUT
{'gatto': 'cat', 'cane': 'dog'}

items() crea un elenco di coppie chiave/valore sotto forma di tuple.


Esempio: Python items() method

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 for coppia in ita_eng.items():
3 print(coppia)

OUTPUT
('gatto', 'cat')
('cane', 'dog')

update() aggiorna gli elementi di un dizionario con quelli di un altro.


Nello specifico:
• aggiunge le coppie chiave/valore inesistenti;
• aggiorna i valori delle chiavi già esistenti.
Esempio: Python update() method

1 ita_eng = {'gatto': 'cat', 'cane': 'dog'}


2 # aggiungo una nuova coppia chiave/valore
3 aggiornamento_01 = {'uccello': 'bird'}
4 ita_eng.update(aggiornamento_01)
5 print(ita_eng)
6 # aggiorno una chiave già esistente
7 aggiornamento_02 = {'gatto': 'kitty'}
8 ita_eng.update(aggiornamento_02)
9 print(ita_eng)

OUTPUT
{'gatto': 'cat', 'cane': 'dog', 'uccello': 'bird'}
{'gatto': 'kitty', 'cane': 'dog', 'uccello': 'bird'}
fromkeys() crea un nuovo dizionario, utilizzando le chiavi e i valori che gli vengono forniti come
argomenti.
Solitamente viene utilizzato per inizializzare un dizionario con dei valori di default.
Esempio: Python fromkeys() method

1 ita = ['gatto', 'cane']


2 ita_eng = {}.fromkeys(ita, 'English: ...')
3 print(ita_eng)

OUTPUT
{'gatto': 'English: ...', 'cane': 'English: ...'}

liberamente tratto da [Link]

Potrebbero piacerti anche