Riferimenti: SoftPython - dizionari 2
Esc
Summer School Data Science 2023 - Modulo 1 informatica: Moodle
Docente: David Leoni david.leoni@unitn.it
Esercitatore: Luca Bosotti luca.bosotti@studenti.unitn.it
Operatore | Sintassi | Ritorna | Descrizione |
---|---|---|---|
lunghezza | len (dict) |
int |
Ritorna il numero di chiavi |
lettura | dict[ chiave] |
obj | Ritorna il valore associato alla chiave |
modifica | dict[ chiave] = valore |
Aggiunge o modifica il valore associato ad una chiave | |
rimozione | del dict[ chiave] |
Rimuove la coppia chiave/valore | |
appartenenza | chiave in dict |
bool |
Ritorna True se chiave è presente nel dizionario |
uguaglianza | == ,!= |
bool |
Controlla se due dizionari sono uguali o differenti |
Riferimenti:
len
¶Conta il numero di associazioni:
len({'a':5,
'b':9,
'c':7
})
3
len({(1, 2) : ['a','b','c'],
(4, 5) : ['d','e','f'],
(7, 8) : ['g','h','i'],
(10,11) : ['e','l','m']
})
4
Data una chiave, possiamo reperire *velocemente* il valore corrispondente
d = { 'sedia' : 'un mobile per sedersi',
'armadio' : 'un mobile a ripiani',
'comodino': 'mobiletto da camera'
}
# Per accedere ad un valore, possiamo usare una chiave tra parentesi quadre:
d['comodino']
'mobiletto da camera'
d['un mobile a ripiani']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/tmp/ipykernel_14605/4214485247.py in <module>
----> 1 d['un mobile a ripiani']
KeyError: 'un mobile a ripiani'
Le chiavi sono immutabili, non hanno ordine e
non vi possono essere duplicati
d[0]
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/tmp/ipykernel_9124/1089268471.py in <module>
----> 1 d[0]
KeyError: 0
civici = {
14 : "Simpson",
5 : "Griffin",
20 : "South Park"
}
civici[5]
'Griffin'
civici[1]
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/tmp/ipykernel_9124/1089268471.py in <module>
----> 1 d[1]
KeyError: 1
d = { 'sedia' : 'un mobile per sedersi',
'armadio' : 'un mobile a ripiani',
}
Possiamo aggiungere un'associazione così:
d['comodino'] = 'mobiletto da camera'
d
{'sedia': 'un mobile per sedersi', 'armadio': 'un mobile a ripiani', 'comodino': 'mobiletto da camera'}
d = { 'sedia' : 'un mobile per sedersi',
'armadio' : 'un mobile a ripiani',
}
d['armadio'] = 'un mobile a ripiani, solitamente due ante'
d
{'sedia': 'un mobile per sedersi', 'armadio': 'un mobile a ripiani, solitamente due ante'}
del
¶d = { 'sedia' : 'un mobile per sedersi',
'armadio' : 'un mobile a ripiani',
}
del d['armadio']
d
{'sedia': 'un mobile per sedersi'}
del
è un operatore
d = {}
d[54] = 'pippo'
d['83a'] = 'topolino'
d[('via dei Platani', 54)] = 'Paperino'
d
{54: 'pippo', '83a': 'topolino', ('via dei Platani', 54): 'Paperino'}
d[ {'una', 'qualche', 'galera'} ] = "gambadilegno"
TypeError Traceback (most recent call last)
/tmp/ipykernel_3047/3187326270.py in <module>
----> 1 d[ {'una', 'qualche', 'galera'} ] = "gambadilegno"
TypeError: unhashable type: 'set'
in
dizionari¶ATTENZIONE: in
nei dizionari cerca solo nelle chiavi!
ingredienti = { 'farina' : 500,
'uova' : 2,
'zucchero' : 200,
}
'farina' in ingredienti
True
500 in ingredienti
False
in
dizionari complessi?¶vip = {
('Napoleone','Giuseppina') : 'Parigi',
('Romeo', 'Giulietta') : 'Verona'
}
vip
{('Napoleone', 'Giuseppina'): 'Parigi', ('Romeo', 'Giulietta'): 'Verona'}
('Cesare','Cleopatra') in vip
False
['Bonnie', 'Clyde'] in vip
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/tmp/ipykernel_9124/998032385.py in <module>
----> 1 ['Bonnie', 'Clyde'] in vip
TypeError: unhashable type: 'list'
diz1 = {
'a':'c',
'b':'d'
}
diz2 = {
'b':'d',
'a':'c'
}
diz1 == diz2
True
da = {}
da[2] = 5
da[3] = 7
db = {3:7,
2:5}
print(diz1 == diz2)
True