Python-Programm zum Extrahieren der N größten Wörterbuchschlüssel

王林
Freigeben: 2023-09-08 22:29:02
nach vorne
1066 Leute haben es durchsucht

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.

Das Problem verstehen

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 -

Eingabe- und Ausgabeszenarien

Betrachten wir ein Wörterbuch mit den folgenden Werten -

Input:
dict1 = {12 : 10, 22 : 12, 18 : 4, 4 : 8, 20 : 14, 9 : 13}
Nach dem Login kopieren

Wenn der Wert von N 4 ist, werden die vier größten Schlüsselwerte im Originalwörterbuch zurückgegeben.

Output: [22, 20, 18, 12]
Nach dem Login kopieren

Höchstens N Schlüsselwerte zurückgeben. Nachdem wir nun die Problemstellung verstanden haben, besprechen wir einige Lösungen.

Verwenden Sie Iteration und Max()

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.

Beispiel

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}")
Nach dem Login kopieren

Ausgabe

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]
Nach dem Login kopieren

Verwenden Sie Iteration mit Sorted() + Lambda

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.

Beispiel

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}")
Nach dem Login kopieren

Ausgabe

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]
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden Sie Sorted() + Itemgetter()

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.

Beispiel

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}")
Nach dem Login kopieren

Ausgabe

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]
Nach dem Login kopieren
Nach dem Login kopieren

Zusätzliche Lösungen und Erkenntnisse

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.

Fazit

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!