Wie man in Python ein Dictionary nach Schlüssel sortiert

Azaz Farooq 10 Oktober 2023
  1. Python-Dictionary mit der Methode dict.keys() nach Schlüssel sortieren
  2. Python Sortieren des Dictionaries nach Schlüssel mit der Methode dict.items()
  3. Python-SortierDictionary nach Schlüssel mit der Methode OrderedDict()
  4. Dictionary in umgekehrter Reihenfolge in Python sortieren
  5. Python Sortier-Dictionary mit benutzerdefinierter key Funktionsmethode
Wie man in Python ein Dictionary nach Schlüssel sortiert

Python-Dictionary ist das gleiche wie die Hash-Tabelle, die die Einträge durch Auswertung der Hashes von Schlüsseln hält, und die Reihenfolge der Einträge ist unmöglich vorherzusehen. Dieser Artikel stellt vor, wie das Dictionary in Python nach Schlüsseln sortiert werden kann.

Python-Dictionary mit der Methode dict.keys() nach Schlüssel sortieren

Nehmen wir das untenstehende Dictionary als Beispiel.

dict = {"hello": 56, "at": 23, "test": 43, "this": 43}

Die Ausgabe des dict.keys() ist

dict_keys(["hello", "at", "test", "this"])

Wir könnten aus dieser ungeordneten Liste von Schlüsseln ein neues, geordnetes Dictionary erstellen.

sorted(dict.keys())

Ausgabe:

['at', 'hello', 'test', 'this']

Wir wenden die Sortierung auf diese geordnete Liste wiederholt an, indem wir jeden Eintrag aus dem Dictionary auswählen.

for key in sorted(dict.keys()):
    print(key, " :: ", dict[key])

Ausgabe:

at  ::  23
hello  ::  56
test  ::  43
this  ::  43

Python Sortieren des Dictionaries nach Schlüssel mit der Methode dict.items()

Wir können ein Dictionary in Python mit der Methode dict.items() auch nach Schlüssel sortieren.

Es wird eine Liste erzeugt, die Schlüssel-Werte-Paare enthält?

dict.items()

Ausgabe:

dict_items([('hello', 56), ('at', 23), ('test', 43), ('this', 43)])

Wir könnten mit der folgenden Funktion eine geordnete Liste erstellen. Sie wird die Einträge des Dictionaries nach den Schlüsselwerten sortieren.

sorted(dict.keys())

Ausgabe:

['at', 'hello', 'test', 'this']

Um nun das Sortier-Schlüssel-Wert-Paar aus dem Dictionary zu erzeugen, verwenden wir den folgenden Code.

for elem in sorted(dict.items()):
    print(elem[0], " ::", elem[1])

Ausgabe:

at  :: 23
hello  :: 56
test  :: 43
this  :: 43

Hinsichtlich der Komplexität ist er mächtiger als der vorherige Ansatz. Da wir nach dem Sortieren der iterierbaren Liste nicht nach Schlüsselwerten suchen müssen, wie in dict.key().

Python-SortierDictionary nach Schlüssel mit der Methode OrderedDict()

Alternativ können wir die Dictionaryeinträge mit dem Modul collections nach Schlüsselwerten sortieren.

import collections

d = {2: 13, 1: 9, 4: 25, 3: 0}
result = collections.OrderedDict(sorted(d.items()))
print(result)

Ausgabe:

OrderedDict([(1, 9), (2, 13), (3, 0), (4, 25)])

Dictionary in umgekehrter Reihenfolge in Python sortieren

Zuvor haben wir die Dictionaryeinträge in aufsteigender Reihenfolge sortiert. Jetzt diskutieren wir einige Möglichkeiten, die Dictionaryeinträge in absteigender Reihenfolge zu sortieren.

Die Syntax lautet:

sorted(iterable_sequence, reverse=True)

Der folgende Code sortiert die Dictionaryeinträge und kehrt die Dictionaryeinträge um.

dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
for elem in sorted(dict.items(), reverse=True):
    print(elem[0], " ::", elem[1])

Der Parameter reverse=true stellt sicher, dass das sortierte Dictionary umgekehrt wird.

Ausgabe:

this  :: 43

test  :: 43

hello  :: 56

at  :: 23

Python Sortier-Dictionary mit benutzerdefinierter key Funktionsmethode

Diese Methode sortiert die Dictionaryeinträge anhand der Länge der key-Zeichenkette.

sorted(iterable_sequence, key=Function)

Die Funktion lambda, die die Größe der Zeichenkette zurückgibt, wird dem Parameter key übergeben.

listofTuples = sorted(dict.items() ,  key=lambda x: len (x[0] ) )
for elem in listofTuples :
    print(elem[0] , " ::" , elem[1] )

Ausgabe:

at  :: 23

test  :: 43

this  :: 43

hello  :: 56

Verwandter Artikel - Python Dictionary