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.
- Creare un dizionario e visualizza le sue chiavi di elenco in ordine alfabetico.
- Visualizza sia le chiavi che i valori, ordinati per chiave in ordine alfabetico.
- 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
# 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)> |
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
# 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.
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