Ordina dizionario per chiave in Python
-
Python Ordina dizionario per chiave con il metodo
dict.keys()
-
Python Ordina dizionario per chiave con il metodo
dict.items()
-
Python ordina il dizionario per chiave con il metodo
OrderedDict()
- Ordina dizionario in ordine inverso in Python
-
Dizionario di ordinamento Python con metodo di funzione
key
personalizzato
Il dizionario Python è lo stesso della tabella hash che conserva le voci valutando gli hash delle chiavi e la sequenza delle voci è impossibile da anticipare. Questo articolo introdurrà come ordinare il dizionario per chiave in Python.
Python Ordina dizionario per chiave con il metodo dict.keys()
Usiamo il dizionario seguente come esempio.
dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
L’output di dict.keys()
è
dict_keys(["hello", "at", "test", "this"])
Potremmo creare un nuovo dizionario ordinato da questo lista di chiavi non ordinato.
sorted(dict.keys())
Produzione:
['at', 'hello', 'test', 'this']
Applichiamo ripetutamente l’ordinamento a questo lista ordinato selezionando ciascuna voce dal dizionario.
for key in sorted(dict.keys()):
print(key, " :: ", dict[key])
Produzione:
at :: 23
hello :: 56
test :: 43
this :: 43
Python Ordina dizionario per chiave con il metodo dict.items()
Possiamo anche ordinare un dizionario per chiave in Python con il metodo dict.items()
.
Genererà una lista che contiene coppie chiave-valore?
dict.items()
Produzione:
dict_items([("hello", 56), ("at", 23), ("test", 43), ("this", 43)])
Potremmo creare una lista organizzato con la seguente funzione. Ordinerà le voci del dizionario in base ai valori chiave.
sorted(dict.keys())
Produzione:
['at', 'hello', 'test', 'this']
Ora per produrre la coppia chiave-valore di ordinamento dal dizionario, utilizziamo il codice seguente.
for elem in sorted(dict.items()):
print(elem[0], " ::", elem[1])
Produzione:
at :: 23
hello :: 56
test :: 43
this :: 43
In termini di complessità, è più potente dell’approccio precedente. Dato che non abbiamo bisogno di controllare il valore-chiave dopo aver ordinato l’lista iterabile, come in dict.key()
.
Python ordina il dizionario per chiave con il metodo OrderedDict()
In alternativa, possiamo ordinare gli elementi del dizionario per valore-chiave utilizzando il modulo collections
.
import collections
d = {2: 13, 1: 9, 4: 25, 3: 0}
result = collections.OrderedDict(sorted(d.items()))
print(result)
Produzione:
OrderedDict([(1, 9), (2, 13), (3, 0), (4, 25)])
Ordina dizionario in ordine inverso in Python
In precedenza, abbiamo ordinato gli elementi del dizionario in ordine crescente. Ora discutiamo alcuni modi per ordinare gli elementi del dizionario in ordine decrescente.
La sintassi è:
sorted(iterable_sequence, reverse=True)
Il codice seguente ha ordinato e invertito gli elementi del dizionario.
dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
for elem in sorted(dict.items(), reverse=True):
print(elem[0], " ::", elem[1])
Il parametro reverse=true
assicura che il dizionario ordinato sia invertito.
Produzione:
this :: 43
test :: 43
hello :: 56
at :: 23
Dizionario di ordinamento Python con metodo di funzione key
personalizzato
Questo metodo ordinerà gli elementi del dizionario utilizzando la lunghezza della stringa key
.
sorted(iterable_sequence, key=Function)
La funzione lambda
che restituisce la dimensione della stringa è data al parametro key
.
listofTuples = sorted(dict.items() , key=lambda x: len (x[0] ) )
for elem in listofTuples :
print(elem[0] , " ::" , elem[1] )
Produzione:
at :: 23
test :: 43
this :: 43
hello :: 56