2D-Array sortieren in Python

Muhammad Maisam Abbas 21 Dezember 2022
  1. 2D-Array nach Spaltennummer sortieren mit der sort()-Funktion in Python
  2. 2D-Array nach Spaltennummer sortieren mit der sorted()-Funktion in Python
2D-Array sortieren in Python

Wir werden verschiedene Methoden zum Sortieren mehrdimensionaler Arrays in Python vorstellen.

Es gibt eingebaute Funktionen wie sort() und sorted() für die Sortierung von Arrays; Diese Funktionen ermöglichen es uns auch, einen bestimmten Schlüssel zu verwenden, mit dem wir definieren können, welche Spalte sortiert werden soll, wenn wir möchten.

Die Methode sort() modifiziert die Liste an Ort und Stelle, und eine eingebaute Funktion sorted() erstellt eine neue sortierte Liste aus einer Iterable. Wir werden uns auch die verschiedenen Methoden ansehen, um iterable für die Funktionen sort() und sorted() zu definieren.

2D-Array nach Spaltennummer sortieren mit der sort()-Funktion in Python

Um das Array nach Spaltennummer zu sortieren, müssen wir den key in der Funktion sort() definieren, wie z.

lst = [["John", 5], ["Jim", 9], ["Jason", 0]]

lst.sort(key=lambda x: x[1])
print(lst)

Ausgabe:

[['Jason', 0], ['John', 5], ['Jim', 9]]

Aus Sortiergründen sollte der Parameter key auf den Wert einer Funktion gesetzt werden, die ein einzelnes Argument akzeptiert und einen key zurückgibt, der im Sortierprozess verwendet werden kann. Diese Strategie lässt sich schnell durchführen, da die Schlüsselfunktion nur einmal für jeden Eingabedatensatz aufgerufen wird.

Ein häufig verwendetes Muster besteht darin, komplexe Objekte unter Verwendung eines oder mehrerer Objektindizes als Schlüssel zu sortieren.

lst = [
    ("john", "C", 15),
    ("jane", "A", 12),
    ("dave", "D", 10),
]

lst.sort(key=lambda lst: lst[2])
print(lst)

Ausgabe:

[('dave', 'D', 10), ('jane', 'A', 12), ('john', 'C', 15)]

Im obigen Code bei key=lambda lst:lst[2] definiert lst[2], welche Spalte für die Sortierbasis verwendet werden soll. In unserem Fall wird lst nach der dritten Spalte sortiert.

2D-Array nach Spaltennummer sortieren mit der sorted()-Funktion in Python

Um das Array nach Spaltennummer zu sortieren, müssen wir den key in der Funktion sorted() definieren, wie z.

li = [["John", 5], ["Jim", 9], ["Jason", 0]]

sorted_li = sorted(li, key=lambda x: x[1])
print(sorted_li)

Ausgabe:

[['Jason', 0], ['John', 5], ['Jim', 9]]

Beachten Sie, dass die Funktion sorted() eine neue Liste im vorhergehenden Code zurückgibt, während die Funktion sort() die ursprüngliche Liste ersetzt.

Alternativ kann der key auch mit itemgetter aus der Bibliothek operator definiert werden.

from operator import itemgetter

lst = [
    ("john", "C", 15),
    ("jane", "A", 12),
    ("dave", "D", 10),
]

sorted_lst = sorted(lst, key=itemgetter(1))
print(sorted_lst)

Ausgabe:

[('jane', 'A', 12), ('john', 'C', 15), ('dave', 'D', 10)]
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Python Array