Come ordinare un dizionario Python

Tempo di lettura stimato: 3 minuti

Nelle nostre Domande per un'intervista generale su Python abbiamo iniziato il processo per cercare di prepararvi a rispondere a tutte le domande che potrebbero sorgere in uno scenario di intervista.

Siamo poi passati a mostrare come discutere le domande di intervista sui dizionari Python e cosa potrebbe emergere.

Una delle domande che ci si può porre è come gestire l'ordinamento di un dizionario python utilizzando una chiave.

Alcuni dei modi in cui è possibile effettuare l'ordinamento sono i seguenti; continuate a leggere gli esempi di codice:

Domande di intervista sul dizionario Python

Come utilizzare il metodo sorted and Items in Python

Nel codice seguente, abbiamo creato un dizionario vuoto e poi inserito tre coppie chiave-valore.

La prima istruzione print si limita a stampare il dizionario in modo non ordinato.

La seconda istruzione di stampa esegue due operazioni:

  1. Prima di tutto, ordina gli elementi di empty_dict1 in ordine
  2. Poi li crea in un dizionario.

Il motivo per cui dobbiamo fare il secondo passo è che la funzione sorted() restituisce un elenco ordinato, che quindi non è in formato dizionario.

empty_dict1 = {}

empty_dict1['Key2'] = '2'
empty_dict1['Key1'] = '1'
empty_dict1['Key3'] = '3'
print("Your unsorted by key dictionary is:",empty_dict1)
print("Your sorted by key dictionary is:",dict(sorted(empty_dict1.items())))

Result:
Your unsorted by key dictionary is: {'Key2': '2', 'Key1': '1', 'Key3': '3'}
Your sorted by key dictionary is: {'Key1': '1', 'Key2': '2', 'Key3': '3'}

Come utilizzare la comprensione dell'elenco per ordinare un dizionario

Come seguito a quanto detto sopra, si potrebbe anche semplicemente iterare sul dizionario usando la comprensione delle liste.

Di seguito viene creata una variabile chiamata d. Questa viene impostata uguale all'output della comprensione della lista.

Note that inside the {} brackets you have a:b, this purely creates two sets of values that will be used as the output to generate the dictionary.

Si noterà inoltre che questa operazione crea valori di indice, a partire da 0, e non i valori effettivi desiderati.

Di conseguenza, è sufficiente eliminare questi valori di indice e sostituirli con i valori desiderati utilizzando il metodo pop().

Le ultime due istruzioni di stampa mostrano il prima e il dopo dell'ordinamento del dizionario!

d = {a:b for a, b in enumerate(empty_dict1.values())}
print(d)
d["Key2"] = d.pop(0) #replaces 0 with Key2
d["Key1"] = d.pop(1) #replaces 1 with Key1
d["Key3"] = d.pop(2) #replaces 2 with Key3
print(d)
print(dict(sorted(d.items())))

Result:
{0: '2', 1: '1', 2: '3'}
{'Key2': '2', 'Key1': '1', 'Key3': '3'}
{'Key1': '1', 'Key2': '2', 'Key3': '3'}

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati da *