Heim > Artikel > Backend-Entwicklung > Python-Programm zum Extrahieren der N größten Wörterbuchschlüssel
Ein Python-Wörterbuch ist eine Datenstruktur, die für eine Vielzahl von Operationen verwendet werden kann, was es zu einem produktiven Programmierwerkzeug macht. Es speichert Daten in Form von Schlüssel-Wert-Paaren, d. h. jede Daten kann mit einem eindeutigen Schlüssel versehen werden. Schlüssel in einem Wörterbuch sind Bezeichner, die verschiedenen Werten zugeordnet sind und auf die zugegriffen, geändert und gelöscht werden kann.
Schlüssel können je nach Aufgabe in unterschiedlicher Reihenfolge sortiert und extrahiert werden. In diesem Artikel besprechen wir das ähnliche Konzept der Extraktion der N größten Wörterbuchschlüssel. Wir werden diese eindeutigen Schlüssel bearbeiten und die relevanten Daten extrahieren.
Stellen Sie sich ein Wörterbuch mit zufälligen eindeutigen Schlüsselwerten vor. Unsere Aufgabe besteht darin, die maximal N Schlüssel aus dem Wörterbuch zu trennen. Lassen Sie uns dies anhand eines Beispiels verstehen -
Betrachten wir ein Wörterbuch mit den folgenden Werten -
Input: dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13}
Wenn der Wert von N 4 ist, werden die vier größten Schlüsselwerte im Originalwörterbuch zurückgegeben.
Output: [22, 20, 18, 12]
Höchstens N Schlüsselwerte zurückgeben. Nachdem wir nun die Problemstellung verstanden haben, besprechen wir einige Lösungen.
Dies ist die grundlegende Methode zum Extrahieren der N größten Schlüssel aus einem Wörterbuch. Wir erstellen ein Wörterbuch und zwei leere Listen, um den Maximalwert bzw. den Referenzwert zu speichern. Danach übergeben wir den Wert „N“ und extrahieren den Schlüsselwert mithilfe der Iteration und der Methode „.items()“.
Diese extrahierten Werte werden in einer Liste (Maxlis) gespeichert. Wir werden die angehängten Wörterbuchschlüssel „N“ noch einmal durchlaufen und alle Maximalwerte extrahieren. Bei jeder Iteration wird der größte Schlüsselwert aus der Liste entfernt und die Liste mit den größten N Schlüsseln (Nlargest) gedruckt.
Hier ist ein Beispiel für das Extrahieren der N größten Wörterbuchschlüssel mithilfe von Iteration und Anhängen -
dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13} Maxlis = [] N = 4 Nlargest = [] print(f"The original dictionary is: {dict1}") for keys, values in dict1.items(): Maxlis.append(keys) for x in range(N): maxval = max(Maxlis) Nlargest.append(maxval) Maxlis.remove(maxval) print(f"The list of N largest dictionaries keys: {Nlargest}")
The original dictionary is: {12: 10, 22: 12, 18: 4, 4: 8, 20: 14, 9: 13} The list of N largest dictionaries keys: [22, 20, 18, 12]
Dies ist eine erweiterte Methode zum Extrahieren der N-größten Schlüssel. Bei dieser Methode rufen wir alle Wörterbuchschlüssel mithilfe der Iteration und der Methode „.items()“ ab. Wir werden den Parameter „key“ in der Funktion „sorted()“ verwenden, um eine andere Funktion (lambda) zur Handhabung der Extraktionslogik anzugeben. Die Lambda-Funktion extrahiert die Schlüssel und die Funktion sorted() sortiert sie der Reihe nach.
Die Klausel „reverse = True“ sortiert die Schlüsselwerte in absteigender Reihenfolge. Schließlich verwenden wir die Slicing-Technik, um nur die ersten N Schlüssel aus dem Wörterbuch zu extrahieren und sie in einer Liste (Nlargest) zu speichern.
Hier ist ein Beispiel -
dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13} N = 4 Nlargest = [] print(f"The original dictionary is: {dict1}") for keys, values in sorted(dict1.items(), key = lambda item : item[0], reverse = True) [:N]: Nlargest.append(keys) print(f"The N largest keys are: {Nlargest}")
The original dictionary is: {12: 10, 22: 12, 18: 4, 4: 8, 20: 14, 9: 13} The N largest keys are: [22, 20, 18, 12]
Anstatt eine Lambda-Funktion zum Extrahieren von Elementen zu verwenden, können wir die Funktion „itemgetter()“ im Operator-Modul verwenden. Wir werden das gleiche Konzept der Iteration und Sortierschlüssel verwenden, aber dem Parameter „key“ wird die Funktion „itemgetter()“ zugewiesen, um den Schlüssel zu extrahieren.
Hier ist ein Beispiel -
from operator import itemgetter dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13} N = 4 Nlargest = [] print(f"The original dictionary is: {dict1}") for keys, values in sorted(dict1.items(), key = itemgetter(0), reverse = True) [:N]: Nlargest.append(keys) print(f"The N largest keys are: {Nlargest}")
The original dictionary is: {12: 10, 22: 12, 18: 4, 4: 8, 20: 14, 9: 13} The N largest keys are: [22, 20, 18, 12]
Es gibt verschiedene Techniken zum Extrahieren der größten N Schlüssel aus einem Wörterbuch, einschließlich der Verwendung der Funktion „nlargest()“ aus dem Modul „heapq“ und der funktionsbasierten Sortierung. Das Festlegen der richtigen Werte für die Funktionen „lambda“ und „itemgetter“ ist sehr wichtig, da es die Voraussetzungen für die Sortierung und Extraktion von Elementen schafft.
In diesem Artikel haben wir verschiedene Lösungen zum Extrahieren von N maximalen Wörterbuchwerten besprochen. Wir beginnen mit einem einfachen und groben Ansatz, bei dem wir den größten Schlüssel isolieren und anbringen. Anschließend besprechen wir einige fortgeschrittene Lösungen zur Generierung detaillierter und optimierter Programme. Wir haben etwas über die Anwendungen der Funktionen sorted(), lambda, itemgetter und max() gelernt.
Das obige ist der detaillierte Inhalt vonPython-Programm zum Extrahieren der N größten Wörterbuchschlüssel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!