Come ordinare un dizionario per chiave e valore in Python?

Apr 2, 2020 – 4 min read

Ciao a tutti. Oggi darò brevi consigli sull’ordinamento dei dizionari in Python (Python3). Come tutti sappiamo i dizionari sono intrinsecamente senza ordine, ma altri tipi, come liste e tuple non lo sono. Non è possibile ordinare un dizionario, ma possiamo fare una rappresentazione di un dizionario che sia ordinato. Quindi hai bisogno di un tipo di dati ordinato per rappresentare chiavi o valori ordinati, che sarà una lista – probabilmente una lista di tuple.

Dizionario in Python (Fonte)

Processo di ordinamento dei dizionari

Come possiamo vedere nella prima figura i dizionari in python sono un insieme di coppie chiave-dove ogni coppia chiave-valore è chiamata elemento. Ora concentriamoci sul problema principale: I dizionari possono essere ordinati per chiavi o per valori. Come è delineato nella seconda figura possiamo ordinare keys(), values() e items() di un dizionario. Concentriamoci prima sull’ordinamento per values().

ordinamento del dizionario per valore

Abbiamo un dizionario che consiste di diverse organizzazioni ben note come keys() e il loro anno di fondazione come values(). Quindi vogliamo avere un dizionario ordinato dove gli elementi dell’organizzazione più vecchia saranno il primo elemento e l’organizzazione più giovane sarà l’ultimo.

d = {"Apple": 1976, "Microsoft":1975, "Facebook":2004, "Sony":1946, "IBM":1911, "Amazon": 1994 }

Come possiamo vedere nel dizionario d, IBM è l’organizzazione più vecchia quindi sarà la prima chiave del dizionario ordinato e Facebook sarà l’ultima.

print(sorted(d.items(), key = lambda kv:kv))
print(sorted(d.items(), key = lambda kv:kv, reverse = True))
print(dict(sorted(d.items(), key = lambda kv:kv)))
sort_d = dict(sorted(d.items(), key = lambda kv:kv))
print(sort_d)

Output:



{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}
{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}

Siccome stiamo ordinando d.items(), che è una lista di tuple dove keys()sono il primo parametro e values() sono il secondo parametro di ogni tupla. Per ordinare la lista di tuple abbiamo scelto i valori, cioè il secondo parametro di ogni tupla, come chiave. Nella prima riga, la chiave è definita come una funzione lambdadove il valore della chiave è il secondo parametro degli elementi. Questo ordinamento creerà una lista di tuple ordinate. possiamo semplicemente renderlo un dizionario usando la funzione dict() come mostrato nella terza linea di codice. Possiamo anche invertire l’ordinamento che come risultato crea una lista di tuple con la più recente al primo posto e la più vecchia sarà l’ultima voce come indicato nella seconda linea del codice. Possiamo anche salvare il dizionario ordinato con un altro nome come mostrato sopra.

Ordinamento del dizionario per chiave

print(sorted(d.items()))
print(dict(sorted(d.items())))
print(dict(sorted(d.items(), key = lambda kv:kv)))
print(sorted(d.items(), reverse = True))

Output:


{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}
{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}

Come sappiamo i keys() qui nel dizionario d sono stringhe allora l’ordinamento per chiave creerà una lista di tuple in ordine alfabetico nel keys() di ogni voce e usando la funzione dict() il dizionario è formato. possiamo anche usare la funzione lambda per definire la chiave che è quasi inutile, ho appena mostrato di fare un confronto nella definizione della chiave nell’ordinamento.

Questo è tutto. Visitate il mio profilo per ottenere altre storie sull’apprendimento automatico e l’analisi dei dati. Qualsiasi tipo di suggerimento e critica è molto apprezzato. Ecco le mie storie precedenti basate su un corso di laurea offerto dalla Inha University, Rep of Korea:

Storie precedenti:

Parte-1: Python di base e installazione
Parte-2: Capitolo-2: Struttura dati Python – Tipo di dati
Parte-3: Dichiarazioni di controllo (loop) in Python
Parte:4: Funzioni Python &Moduli
Parte:5: Programmazione orientata agli oggetti in Python – Schafer & DataCamp.
Parte-6: I tipi & di procedura dell’apprendimento automatico
Parte-7: Ingegneria delle caratteristiche per l’apprendimento automatico

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.