In Python, i dizionari (dict) sono una struttura dati associativa che associa una chiave a un valore (k, v):
d = {}
d['bart'] = 'marge'
d['maggie'] = 'homer'
d['milhouse'] = 'nelson'
d['lisa'] = 'skinner'
>>> d
{'maggie': 'homer', 'lisa': 'skinner', 'bart': 'marge', 'milhouse': 'nelson'}
Esistono due modi di ordinare un dizionario:
- La modalità “classica” e più conosciuta: ovvero ordinare il dizionario sulla base delle chiavi che lo compongono:
for k in sorted(d.keys()):
print(k + ' : ' + d[k])
# bart : marge
# lisa : skinner
# maggie : homer
# milhouse : nelson
- La modalità meno conosciuta e che ho dovuto ricercare [e che quindi condivido con voi], ovvero quella di ordinare il dizionario sulla base dei valori associati alle chiavi:
sorted(d.items(), key=lambda item: item[1])
# [('maggie', 'homer'), ('bart', 'marge'), ('milhouse', 'nelson'), ('lisa', 'skinner')]
Come vedete questa volta abbiamo ottenuto una lista degli elementi ordinati secondo il valore associato a ogni chiave. Può tornare utile!
Esistono molteplici versioni di quest’ultima istruzione, ma questa ritengo che sia la più compatta e leggibile.