Wenn Sie mit Listen von Tupeln arbeiten, die sowohl Zeichenfolgen- als auch ganzzahlige Elemente enthalten, können Sie sie effizient basierend auf den ganzzahligen Werten sortieren wesentlich sein. Dieser Artikel befasst sich mit einer Lösung für diese häufige Programmieraufgabe.
Um eine Liste von Tupeln nach ihrem zweiten Element, das eine Ganzzahl ist, zu sortieren, können wir die Funktion sorted() in Python verwenden. Diese Funktion ermöglicht die Anpassung von Sortierkriterien mithilfe des Schlüsselwortarguments „key“.
Das Argument „key“ verwendet eine Funktion als Eingabe, die bestimmt, wie die Tupel verglichen werden sollen. In diesem Fall wollen wir sie anhand ihres zweiten Elements vergleichen. Wir können eine benutzerdefinierte Funktion mithilfe der Lambda-Syntax wie folgt definieren:
lambda x: x[1]
Diese Funktion nimmt ein einzelnes Tupel als Eingabe und gibt sein zweites Element zurück.
Jetzt können wir das Schlüsselargument in sorted() verwenden, um diese benutzerdefinierte Funktion als Sortierregel anzugeben:
sorted([('abc', 121), ('abc', 231), ('abc', 148), ('abc', 221)], key=lambda x: x[1])
Dies gibt a zurück Neue Liste mit den Tupeln, sortiert in aufsteigender Reihenfolge nach ihrem zweiten Element:
[('abc', 121), ('abc', 148), ('abc', 221), ('abc', 231)]
Für eine optimale Leistung sollten Sie die Verwendung von „operator.itemgetter(1)“ in Betracht ziehen Lambda x: x[1]. Operator.itemgetter ist eine integrierte Funktion, die explizit zum Extrahieren des angegebenen Elements aus einer Datenstruktur entwickelt wurde, was die Effizienz verbessern kann.
from operator import itemgetter sorted([('abc', 121), ('abc', 231), ('abc', 148), ('abc', 221)], key=itemgetter(1))
Dieser Ansatz erzielt das gleiche Ergebnis wie die Verwendung der Lambda-Funktion, kann jedoch geringfügig abweichen in manchen Fällen schneller.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Python-Tupel effizient nach ihrem ganzzahligen zweiten Element?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!