HOWTO · Python

Liste von Tupeln in Python sortieren

Dieses Tutorial demonstriert, wie man eine Liste von Tupeln sortiert.

In Python können mit Hilfe von Tuples mehrere Elemente in einer einzigen Variablen gespeichert werden. Eine Liste von Tuples kann wie eine Liste von Ganzzahlen sortiert werden.

In diesem Lernprogramm werden verschiedene Methoden besprochen, um eine Liste von Tupeln nach dem ersten, zweiten oder i-ten Element in den Tupeln zu sortieren.

Verwenden Sie die Funktion list.sort(), um eine Liste von Tupeln in Python zu sortieren

Die Funktion list.sort() sortiert die Elemente einer Liste in aufsteigender oder absteigender Reihenfolge. Ihr Parameter key gibt den Wert an, der für die Sortierung verwendet werden soll. key muss eine Funktion oder eine andere aufrufbare Variable sein, die auf jedes Listenelement angewendet werden kann.

Der folgende Code sortiert die Tupel basierend auf dem zweiten Element in allen Tupeln.

list_students = [
    ("Vaibhhav", 86),
    ("Manav", 91),
    ("Rajesh", 88),
    ("Sam", 84),
    ("Richie", 89),
]

# sort by second element of tuple
list_students.sort(key=lambda x: x[1])  # index 1 means second element

print(list_students)

Ausgabe:

[('Sam',84), ('Vaibhhav',86), ('Rajesh',88), ('Richie',89), ('Manav',91)]

Die Reihenfolge kann auf absteigend umgedreht werden, indem der Parameter reverse der Methode sort() auf True gesetzt wird.

Der folgende Code sortiert die Liste der Tupel in absteigender Reihenfolge unter Verwendung des Parameters reverse.

list_students = [
    ("Vaibhhav", 86),
    ("Manav", 91),
    ("Rajesh", 88),
    ("Sam", 84),
    ("Richie", 89),
]

# sort by second element of tuple
list_students.sort(key=lambda x: x[1], reverse=True)

print(list_students)

Ausgabe:

[('Manav',91), ('Richie',89), ('Rajesh',88), ('Vaibhhav',86), ('Sam',84)]

Verwenden Sie den Bubblesort-Algorithmus, um die Liste der Tupel in Python zu sortieren

Bubblesort ist einer der einfachsten Sortieralgorithmen; er funktioniert, indem er die benachbarten Elemente in einer Liste vertauscht, wenn sie in der falschen Reihenfolge sind, und diesen Schritt wiederholt, bis die Liste sortiert ist.

Der folgende Code sortiert die Tupel basierend auf dem zweiten Element und verwendet den Bubble-Sort-Algorithmus.

list_ = [("Vaibhhav", 86), ("Manav", 91), ("Rajesh", 88), ("Sam", 84), ("Richie", 89)]

# sort by second element of tuple
pos = 1
list_length = len(list_)

for i in range(0, list_length):
    for j in range(0, list_length - i - 1):
        if list_[j][pos] > list_[j + 1][pos]:
            temp = list_[j]
            list_[j] = list_[j + 1]
            list_[j + 1] = temp

print(list_)

Ausgabe:

[('Sam',84), ('Vaibhhav',86), ('Rajesh',88), ('Richie',89), ('Manav',91)]

Die Variable pos gibt die Position an, nach der sortiert werden soll, was in diesem Fall das zweite Element.

Wir können auch das erste Element verwenden, um die Liste der Tupel zu sortieren. Das folgende Programm implementiert dies.

list_ = [("Vaibhhav", 86), ("Manav", 91), ("Rajesh", 88), ("Sam", 84), ("Richie", 89)]

# sort by first element of tuple
pos = 0
list_length = len(list_)
for i in range(0, list_length):
    for j in range(0, list_length - i - 1):
        if list_[j][pos] > list_[j + 1][pos]:
            temp = list_[j]
            list_[j] = list_[j + 1]
            list_[j + 1] = temp

print(list_)

Ausgabe:

[('Manav',91), ('Rajesh',88), ('Richie',89), ('Sam',84), ('Vaibhhav',86)]