Heim >Backend-Entwicklung >Python-Tutorial >Wie sortiere ich Python-Tupel effizient nach ihrem ganzzahligen zweiten Element?

Wie sortiere ich Python-Tupel effizient nach ihrem ganzzahligen zweiten Element?

Linda Hamilton
Linda HamiltonOriginal
2024-12-05 08:44:17478Durchsuche

How to Efficiently Sort Python Tuples by Their Integer Second Element?

Sortieren von Python-Tupeln nach zweitem Element (ganzzahliger Wert)

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“.

Verwendung des Arguments „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.

Sortieren Sie die Tupelliste

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)]

Optimieren der Sortierung mit Operator.itemgetter

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!

Stellungnahme:
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