Vai al contenuto principale

Come ordinare un dizionario per valori in Python

Scopri metodi efficienti per ordinare un dizionario per valori in Python. Esplora l'ordinamento crescente e decrescente e consigli extra per l'ordinamento per chiavi.
Aggiornato 29 set 2026  · 5 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

L'ordinamento è un'operazione fondamentale nella manipolazione dei dati, e i dizionari in Python non fanno eccezione. Che si tratti di un progetto complesso di analisi dei dati o di uno script semplice, capire come ordinare in modo efficiente un dizionario per valore può essere estremamente utile.

In questo articolo analizziamo i vari metodi per ordinare i dizionari in base ai loro valori in Python, così da avere gli strumenti per organizzare i dati come ci serve.

La risposta breve: come ordinare un dizionario per valore in Python

Per ordinare rapidamente un dizionario per valore, possiamo usare la funzione integrata di Python .sorted() in combinazione con una funzione lambda. Questo metodo è semplice ed efficiente nella maggior parte dei casi.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))

print(sorted_by_values)

# Expected output:
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Ora facciamo un passo indietro per capire cosa sono i dizionari in Python e perché potremmo aver bisogno di ordinarli.

Cosa sono i dizionari in Python?

I dizionari in Python sono una struttura dati che memorizza dati in coppie chiave-valore. Sono molto versatili e consentono ricerche, inserimenti e cancellazioni veloci. Ecco un semplice esempio:

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}

# No expected output

Nel dizionario qui sopra, i nomi degli studenti sono le chiavi e i loro punteggi sono i valori. 

I dizionari sono utili in molti scenari, ad esempio quando dobbiamo archiviare e recuperare dati in modo efficiente. Tuttavia, a volte è necessario ordinare questi dati per valori e non per chiavi, per esempio quando vogliamo classificare gli studenti in base ai loro punteggi.

Come ordinare un dizionario per valore in Python

Ora diamo uno sguardo più da vicino alla funzione .sorted() in Python e a come usarla nello specifico per ordinare i dizionari per valore.

Come ordinare un dizionario per valore usando .sorted()

La funzione .sorted() è uno strumento potente e flessibile per l'ordinamento in Python. Per ordinare un dizionario in base ai suoi valori, possiamo usare una funzione lambda per specificare che l'ordinamento deve basarsi sui valori del dizionario.

student_scores = {
    'Alex': 88,
    'Ben': 75,
    'Cyrus': 93,
    'Denver': 85
}
sorted_by_values = dict(sorted(student_scores.items(), key=lambda item: item[1]))

print(sorted_by_values)

# Expected output: 
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

In questo esempio, student_scores.items() restituisce un oggetto vista che mostra una lista delle coppie chiave-valore del dizionario come tuple. La funzione .sorted() ordina queste coppie in base ai valori (item[1]), e dict() converte la lista ordinata di nuovo in un dizionario.

Come ordinare un dizionario per valore in ordine decrescente o crescente

Per impostazione predefinita, la funzione .sorted() ordina in ordine crescente. Tuttavia, a seconda della situazione, possiamo modificare facilmente questo comportamento per ordinare in ordine decrescente o crescente impostando il parametro reverse su True o False.

Come ordinare un dizionario in ordine crescente

Come detto, un dizionario verrà ordinato in ordine crescente per impostazione predefinita quando si usa la funzione .sorted(). Possiamo ottenere l'ordine crescente anche impostando il parametro reverse su False.

sorted_by_values_asc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=False))
print(sorted_by_values_asc)

# Expected output:
# {'Ben': 75, 'Denver': 85, 'Alex': 88, 'Cyrus': 93}

Come ordinare un dizionario in ordine decrescente

Se vogliamo ordinare in ordine decrescente, possiamo impostare il parametro reverse su True.

sorted_by_values_desc = dict(sorted(student_scores.items(), key=lambda item: item[1], reverse=True))
print(sorted_by_values_desc)

# Expected output:
# {'Cyrus': 93, 'Alex': 88, 'Denver': 85, 'Ben': 75}

Bonus: come ordinare un dizionario per chiave in Python

Sebbene questo articolo sia incentrato sull'ordinamento per valori, è utile sapere anche come ordinare un dizionario per chiavi. Si può fare in modo analogo usando la .sorted().

sorted_by_keys = dict(sorted(student_scores.items()))
print(sorted_by_keys)

# Expected output:
# {'Alex': 88, 'Ben': 75, 'Cyrus': 93, 'Denver': 85}

Per l'ordine decrescente, imposta semplicemente reverse=True:

sorted_by_keys_desc = dict(sorted(student_scores.items(), reverse=True))
print(sorted_by_keys_desc)

# Expected output:
# {'Denver': 85', 'Cyrus': 93, 'Ben': 75, 'Alex': 88}

Conclusione

Ordinare un dizionario per valori in Python è un'operazione comune che si può eseguire facilmente con la funzione .sorted(). Che ci servano i dati in ordine crescente o decrescente, conoscere queste tecniche renderà le attività di manipolazione dei dati più semplici ed efficienti. Padroneggiando questi metodi di ordinamento, possiamo assicurarci che i dati siano sempre organizzati al meglio per le nostre esigenze.

FAQs

Q1: Can I sort a dictionary by values if the values are strings instead of numbers?

A1: Sì, possiamo ordinare un dizionario per valori anche se i valori sono stringhe. La funzione .sorted() ordinerà i valori alfabeticamente in ordine crescente o decrescente, proprio come fa con i numeri.

Q2: How can I sort a dictionary by values if it contains nested dictionaries?

A2: Per ordinare un dizionario con dizionari annidati, dobbiamo definire una funzione di ordinamento personalizzata che estragga e confronti i valori annidati rilevanti. Questo richiede una lambda più complessa o una funzione separata per gestire il confronto.

Q3: Can I sort a dictionary by values in-place without creating a new dictionary?

A3: No, i dizionari in Python sono collezioni intrinsecamente non ordinate nelle versioni precedenti alla 3.7, e anche se dalla 3.7 in poi mantengono l'ordine di inserimento, non esiste un metodo integrato per ordinarli in-place. L'ordinamento di un dizionario porta sempre alla creazione di un nuovo dizionario con l'ordine desiderato.

Q4: What is the time complexity of sorting a dictionary by values in Python?

A4: La complessità temporale per ordinare un dizionario per valori usando la funzione .sorted() è O(n log n), dove n è il numero di coppie chiave-valore nel dizionario. Questo perché .sorted() usa internamente Timsort, un algoritmo di ordinamento ibrido con questa complessità.

Q5: Will sorting a dictionary by values change the original dictionary?

A5: No, ordinare un dizionario per valori usando la funzione .sorted() crea un nuovo dizionario. L'originale rimane invariato.


Neetika Khandelwal's photo
Author
Neetika Khandelwal
LinkedIn
Sono uno sviluppatore Java e un affermato autore tecnico specializzato in data science, intelligenza artificiale (AI) e programmazione Java. Con oltre 3 anni di esperienza nello sviluppo software, ho maturato una solida competenza nella creazione di applicazioni robuste e scalabili e nello sfruttare la versatilità di Java per risolvere problemi complessi. Sono appassionato di condivisione della conoscenza con la più ampia comunità tech. Attraverso articoli tecnici completi, tutorial e guide, cerco di rendere più accessibili i temi più complessi di data science e AI, sia ai principianti sia ai professionisti esperti. Attualmente ho pubblicato oltre 125 articoli.
Argomenti
Python
Analisi dei dati

Approfondisci Python con questi corsi!

Corso

Introduzione a Python

4 ore
7.1M
Impara le basi dell’analisi dei dati con Python in sole 4 ore. Questo corso online ti introduce all’interfaccia di Python e ai pacchetti più usati.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro