logo

Pitone | Ordina i dizionari Python per chiave o valore

Ci sono due elementi in un dizionario Python: chiavi e valori. Puoi ordinare il dizionario per chiavi, valori o entrambi. In questo articolo discuteremo i metodi di ordinamento dei dizionari per chiave o valore utilizzando Pitone .

Necessità di ordinare il dizionario in Python

Abbiamo bisogno dell'ordinamento dei dati per ridurre la complessità dei dati e rendere le query più veloci ed efficienti. L'ordinamento è molto importante quando si ha a che fare con una grande quantità di dati.

Possiamo ordinare un dizionario per valori usando questi metodi:



  • Innanzitutto, ordina le chiavi in ​​ordine alfabetico utilizzando valore_chiave. iterkeys() funzione.
  • In secondo luogo, ordina i tasti in ordine alfabetico utilizzando il comando ordinato (valore_chiave) funzione e stampa il valore corrispondente.
  • In terzo luogo, ordina i valori in ordine alfabetico utilizzando valore_chiave. elementi() , chiave = lambda (k, v) : (v, k))

Ordina i dizionari Python per esempi di chiavi o valori

Ecco le attività principali che devono essere eseguite per ordinare un dizionario per valore e chiavi in ​​Python.

  1. Creare un dizionario e visualizza le sue chiavi di elenco in ordine alfabetico.
  2. Visualizza sia le chiavi che i valori, ordinati per chiave in ordine alfabetico.
  3. Infine, visualizza sia le chiavi che i valori, ordinati per valore in ordine alfabetico.

Esempio 1: ordinamento del dizionario per chiave

In questo esempio, ordineremo il dizionario per chiavi e il tipo di risultato sarà un dizionario.

Python3




myDict>=> {>'ravi'>:>10>,>'rajnish'>:>9>,> >'sanjeev'>:>15>,>'yash'>:>2>,>'suraj'>:>32>}> myKeys>=> list>(myDict.keys())> myKeys.sort()> sorted_dict>=> {i: myDict[i]>for> i>in> myKeys}> print>(sorted_dict)>

>

>

Produzione

{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}>

Esempio 2: Visualizzazione delle chiavi in ​​ordine ordinato

In questo esempio, stiamo provando a ordinare il dizionario per chiavi e valori in Python. Qui, iterkeys() restituisce un iteratore sulle chiavi del dizionario.

Python3


motore di ricerca ed esempi



# Function calling> def> dictionary():> ># Declare hash function> >key_value>=> {}> # Initializing value> >key_value[>2>]>=> 56> >key_value[>1>]>=> 2> >key_value[>5>]>=> 12> >key_value[>4>]>=> 24> >key_value[>6>]>=> 18> >key_value[>3>]>=> 323> >print>(>'Task 1:- '>)> >print>(>'key_value'>, key_value)> ># iterkeys() returns an iterator over the> ># dictionary’s keys.> >for> i>in> sorted>(key_value.keys()):> >print>(i, end>=>' '>)> def> main():> ># function calling> >dictionary()> # Main function calling> if> __name__>=>=> '__main__'>:> >main()>

>

>

Produzione

Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6>

Esempio 3: ordinamento del dizionario per chiave

In questo esempio, ordineremo in ordine lessicografico prendendo il tipo della chiave come una stringa.

Python3




# Creates a sorted dictionary (sorted by key)> from> collections>import> OrderedDict> dict> => {>'ravi'>:>'10'>,>'rajnish'>:>'9'>,> >'sanjeev'>:>'15'>,>'yash'>:>'2'>,>'suraj'>:>'32'>}> dict1>=> OrderedDict(>sorted>(>dict>.items()))> print>(dict1)>

>

>

q1 q2 q3 q4
Produzione

OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')])>

Esempio 4: Ordinamento alfabetico delle chiavi e dei valori utilizzando la chiave

In questo esempio, stiamo provando a ordinare il dizionario per chiavi e valori in Python. Qui stiamo usando un iteratore sul valore del dizionario per ordinare le chiavi.

Python3


lista stringa java



# function calling> def> dictionairy():> ># Declaring the hash function> >key_value>=> {}> # Initialize value> >key_value[>2>]>=> 56> >key_value[>1>]>=> 2> >key_value[>5>]>=> 12> >key_value[>4>]>=> 24> >key_value[>6>]>=> 18> >key_value[>3>]>=> 323> > >print>(>'key_value'>,key_value)> >print>(>'Task 2:- Keys and Values sorted in'>,> >'alphabetical order by the key '>)> > ># sorted(key_value) returns a sorted list> ># of the Dictionary’s keys.> >for> i>in> sorted>(key_value):> >print>((i, key_value[i]), end>=>' '>)> def> main():> ># function calling> >dictionairy()> # main function calling> if> __name__>=>=> '__main__'>:> >main()>

>

>

Produzione

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 2:- Keys and Values sorted in alphabetical order by the key (1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18)>

Esempio 5: Ordinamento alfabetico delle chiavi e dei valori utilizzando il valore

In questo esempio, stiamo provando a ordinare il dizionario per chiavi e valori in Python. Qui usiamo l'ordinamento lessicografico.

Python3




# Function calling> def> dictionairy():> ># Declaring hash function> >key_value>=> {}> # Initializing the value> >key_value[>2>]>=> 56> >key_value[>1>]>=> 2> >key_value[>5>]>=> 12> >key_value[>4>]>=> 24> >key_value[>6>]>=> 18> >key_value[>3>]>=> 323> > >print>(>'key_value'>,key_value)> >print>(>'Task 3:- Keys and Values sorted'>,> >'in alphabetical order by the value'>)> ># Note that it will sort in lexicographical order> ># For mathematical way, change it to float> >print>(>sorted>(key_value.items(), key>=>lambda> kv:> >(kv[>1>], kv[>0>])))> def> main():> ># function calling> >dictionairy()> # main function calling> if> __name__>=>=> '__main__'>:> >main()>

>

>

Produzione

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 3:- Keys and Values sorted in alphabetical order by the value [(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)]>

La complessità temporale per questo programma è O(n log n), dove n è il numero di coppie chiave-valore nel dizionario.

come chiudere la modalità sviluppatore

Anche la complessità dello spazio ausiliario per questo programma è O(n), dove n è il numero di coppie chiave-valore nel dizionario.

Esempio 6: ordinamento del dizionario per valore

In questo esempio, stiamo provando a ordinare il dizionario per valori in Python. Qui stiamo usando la comprensione del dizionario per ordinare i nostri valori.

Python3




# Creates a sorted dictionary (sorted by key)> from> collections>import> OrderedDict> import> numpy as np> dict> => {>'ravi'>:>10>,>'rajnish'>:>9>,> >'sanjeev'>:>15>,>'yash'>:>2>,>'suraj'>:>32>}> print>(>dict>)> keys>=> list>(>dict>.keys())> values>=> list>(>dict>.values())> sorted_value_index>=> np.argsort(values)> sorted_dict>=> {keys[i]: values[i]>for> i>in> sorted_value_index}> print>(sorted_dict)>

>

>

Produzione:

{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}>

Complessità temporale: O(n log n), dove n è il numero di elementi nel dizionario.
Spazio ausiliario: O(n), poiché stiamo creando nuovi elenchi di chiavi e valori e creando un nuovo dizionario con lo stesso numero di voci del dizionario originale.

Abbiamo trattato diversi esempi basati sull'ordinamento del dizionario per chiave o valore. Leggere ed esercitarsi con questi codici Python ti aiuterà a comprendere l'ordinamento nei dizionari Python.

Puoi ordinare facilmente i valori dei dizionari in base alla chiave o al valore.

Letture simili:

  • Ordina un dizionario
  • Diversi modi di ordinare il dizionario per valori e inverso
  • Diversi modi di ordinare il dizionario per chiavi e inverso
  • Modi per ordinare l'elenco dei dizionari in base ai valori
  • Ordina l'elenco delle chiavi e dei valori del dizionario