Python Liste sort() mit Beispielen

⚡ Intelligente Zusammenfassung

Python Die Funktion `list sort()` ordnet die Elemente einer Liste an Ort und Stelle an, standardmäßig aufsteigend oder absteigend über den Parameter `reverse`. Eine optionale `key`-Funktion sortiert nach benutzerdefinierten Kriterien wie Länge, Tupelfeldern oder benutzerdefinierten Funktionen.

  • 🔘 Syntax: Die Methode sort() akzeptiert optionale Parameter key und reverse und verändert die ursprüngliche Liste, ohne eine Kopie zu erstellen.
  • ☑️ Auftragssteuerung: Wenn der Parameter „reverse“ auf „True“ gesetzt wird, werden die Werte von der höchsten zur niedrigsten Reihenfolge sortiert, anstatt in der standardmäßigen aufsteigenden Reihenfolge.
  • ✅ Schlüsselparameter: Eine Schlüsselfunktion wie len sortiert Elemente nach einem abgeleiteten Wert, beispielsweise der Stringlänge oder einem Tupelfeld.
  • 🧪 sortieren vs. sortiert: Die Methode sort() verändert die Liste direkt und gibt None zurück, während sorted() eine neue Liste zurückgibt und die ursprüngliche Liste beibehält.
  • ️ Benutzerdefinierte Kriterien: Mithilfe von Lambda-Ausdrücken und benutzerdefinierten Funktionen kann die Funktion sort() Tupel, Wörterbücher und benannte Tupel nach einem beliebigen Attribut sortieren.
  • 🤖 KI-Workflows: Maschinelles Lernen sortiert Vorhersagen nach Punktzahl und wählt die besten Ergebnisse vor der Rangfolge oder Bewertung aus.

Python Liste sortieren()

Was ist die sort()-Methode in Python?

Die sort()-Funktion in Python Diese Funktion hilft dabei, eine Liste aufsteigend oder absteigend zu sortieren. Sie kann zum Sortieren von Zahlenlisten, Tupeln und Zeichenkettenlisten verwendet werden. Dabei wird keine separate Liste erstellt, sondern die ursprüngliche Liste modifiziert oder sortiert.

Syntax der Sort-Methode in Python

Die Sortierfunktion hat folgende Syntax:

List.sort(key=…, reverse=…)

Die Sortierfunktion hat zwei optionale Parameter, nämlich:

  • Schlüssel: – Dies wird verwendet, um eine Funktion basierend auf einem Sortierkriterium zu sortieren.
  • Reverse: – Die Funktion nimmt den Wert „true“ oder „false“ entgegen. Im Fall von „true“ sortiert diese benutzerdefinierte Funktion die Liste in absteigender Reihenfolge.

Sortieren einer Liste in aufsteigender Reihenfolge mit der Sort-Methode in Python

In Pythonsortiert die Sortierfunktion standardmäßig alle Listen in aufsteigender Reihenfolge. Bei einer aufsteigend sortierten Liste steht der niedrigste Wert auf der linken Seite und der höchste Wert auf der rechten Seite.

Ejemplo:

Python Code:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

Ausgang:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Code Erläuterung:

  • Die obige Liste ist eine zufällig definierte Zeichenfolgenliste.
  • Die Sortierfunktion von Python hilft beim Sortieren der Zufallsliste in aufsteigender Reihenfolge, mit der geringsten Wortlänge auf der linken Seite und der größten Wortlänge auf der rechten Seite.

Sortieren einer Liste in absteigender Reihenfolge

Die Sortierfunktion ermöglicht auch die absteigende Sortierung einer Liste. Es kann als Reihenfolge definiert werden wobei die Liste mit dem höchsten Wert beginnt und mit dem niedrigsten Wert endet.

Der umgekehrte Parameter der Sortierfunktion wird als „true“ zugewiesen, um eine Liste in absteigender Reihenfolge zu sortieren.

Betrachten wir das folgende Beispiel:

Python Code:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

Ausgang:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Hinweis: Stellen Sie sicher, dass die Zuweisung des Wortes „True“ zum Reverse-Parameter mit dem Großbuchstaben „T“ beginnt, um Laufzeitfehler zu vermeiden.

Sortieren einer Liste von Tupeln mit der Sort-Methode in Python

Python Tupel sind Sammlungen unveränderlicher Elemente, die einer geordneten Reihenfolge folgen. PythonMit der Sortierfunktion von kann eine Liste von Tupeln mithilfe einer benutzerdefinierten Funktion und eines Lambda-Ausdrucks sortiert werden.

Eine benutzerdefinierte Funktion kann ohne Namen erstellt und durch einen Lambda-Ausdruck dargestellt werden. Die Syntax für Lambda-Ausdrücke lautet wie folgt:

Syntax:

Lambda arguments: expression

Die obige Syntax entspricht dem folgenden Python-Code:

def name (arguments):
return expression

Hier ist ein Beispiel für ein Tupel und eine benutzerdefinierte Funktion, um zu veranschaulichen, wie eine Sortierfunktion mit Schlüsselparametern dabei hilft, die Elemente in einem Tupel zu sortieren:

Python Code:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

Ausgang:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Code Erläuterung:

  • Der Parameter „reverse“ wird als „true“ definiert, um das Tupel in absteigender Reihenfolge zu sortieren.
  • Die angepasste Funktion übernimmt das zweite Element des Tupels.
  • Dies wird als Schlüssel der Sortierfunktion verwendet.

Schauen wir uns das folgende Beispiel an, das den Lambda-Ausdruck verwendet:

Python Code:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

Ausgang:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Erläuterung:

  • Der Lambda-Ausdruck hilft Ihnen, die Elemente des Tupels von hoch nach niedrig zu sortieren, wobei der Schlüssel das zweite Element des Tupels ist.
  • Das Programm prüft den höchsten Wert des zweiten Elements des Tupels.

Sortieren von Listenelementen mit Len als Schlüsselparameter

Len ist eine integrierte Funktion, die die Länge eines Elements ermittelt. Die ermittelte Länge kann für die Indizierung in der Sortierfunktion verwendet werden. Dazu weisen wir Len der Funktion zu. Python Schlüsselparameter der Sortierfunktion.

Folgende Python Der Code veranschaulicht, wie die Len-Funktion mit der Sortierfunktion verwendet wird.

Python Code:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

Ausgang:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Code Erläuterung:

Listenelemente mit Len sortieren

  • Die Länge des Elements wird zum Index für den Schlüsselparameter, um die Liste in aufsteigender Reihenfolge anzuordnen.
  • Die Len-Funktion schätzt die Länge jedes in der Basisliste vorhandenen Elements.
  • Das kürzeste Element bleibt auf der linken Seite und das größte Element auf der rechten Seite.
  • Hier haben die Wörter „alto“ und „java“ eine Länge von 4 und stehen an erster Stelle in der Liste, gefolgt von Guru99, das eine Länge von 6 hat.

Dieses Beispiel veranschaulicht das Konzept des umgekehrten Parameters in der Sortierfunktion, wie unten dargestellt:

Python Code:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

Ausgang:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Sortieren von Listenelementen mithilfe einer benutzerdefinierten Funktion als Schlüsselparameter

Sie können auch eine benutzerdefinierte Funktion als Schlüsselparameter verwenden, um eine Liste zu sortieren. Hier ist ein Beispiel:

Python Code:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

Ausgang:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Code Erläuterung:

  • Es wird eine benutzerdefinierte Funktion erstellt, um das Jahr zurückzugeben
  • Der Schlüsselparameter verwendet eine benutzerdefinierte Funktion als Kriterium.
  • Die Sortierfunktion ordnet die Liste in aufsteigender Reihenfolge basierend auf dem Wert des Elements „Jahr“.

Unterschied zwischen der Sortiermethode und der sortierten Methode in Python

Nachdem wir die obigen Beispiele durchgegangen sind, ist es hilfreich, die beiden Sortierwerkzeuge direkt zu vergleichen. Bevor wir die Unterschiede zusammenfassen, wollen wir die Syntax der Sorted-Methode verstehen.

Python Syntax:

sorted (list_name, reverse=…., key=..)

Code Erläuterung:

  • Die Sortierfunktion sortiert die Liste entweder in aufsteigender oder absteigender Reihenfolge.
  • Die Funktion akzeptiert drei Parameter, von denen zwei Parameter einen optionalen Typ und ein Parameter den erforderlichen Typ haben.
  • Der Parameter list_name ist erforderlich, wenn die Sorted-Methode verwendet wird.
  • Die Sorted-Methode kann jede Art von iterierbarer Liste als Eingabe verwenden.
  • Schlüsselparameter und umgekehrte Parameter sind optionale Parameter bei der sortierten Methode in Python.

Hier ist ein Beispiel für die Verwendung der Funktion sort und sortiert in Python:

Python Code:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

Ausgang:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Code Erläuterung:

  • Die Originalliste wird als erforderlicher Parameter für die Sortierfunktion übergeben.
  • Die Sorted-Methode gibt neben der ursprünglichen Liste eine neue Liste zurück.
  • Da der Sortiermethode keine zusätzlichen Parameter übergeben werden, wird die neue Liste standardmäßig in aufsteigender Reihenfolge sortiert.
  • Die Sortierfunktion erstellt keine neue Liste.

Im Folgenden werden die wichtigsten Gemeinsamkeiten und Unterschiede aufgeführt:

Sortierte Funktion Sortierfunktion
Sortierte Funktion in Python ist eine integrierte Funktion, die „list_name“ als erforderlichen Parameter verwendet. Die Sortierfunktion verwendet nicht die Originalliste als Parameter.
Die sortierte Methode gibt eine neue Liste zurück Die Sortierfunktion gibt keine neue Liste zurück
Für iterierbare Listen sollte die sortierte Funktion verwendet werden Die Sortierfunktion sollte für nicht iterierbare Listen verwendet werden.
Die Originalliste wird dadurch nicht verändert und wir können die Originaldaten beibehalten. Die Sortierfunktion modifiziert die ursprüngliche Funktion und belegt daher weniger Speicherplatz

Wann sollte die sortierte Methode oder die Sortiermethode verwendet werden?

Nehmen wir ein Beispiel, bei dem Renndaten sortiert werden müssen. Das Programm verwendet die Startnummer und die benötigte Zeit in Sekunden, um das Rennen zu beenden.

Python Code:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

Ausgang:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Code Erläuterung:

  • Die Basisliste wird sowohl mit der Sortierfunktion als auch mit der Sortierfunktion sortiert.
  • Die Basisliste geht verloren, wenn die Sortierfunktion angewendet wird.
  • Die Sortierfunktion sollte nicht auf den Originaldatensatz angewendet werden. Es sollte verwendet werden, wenn eine Kopieversion des Originaldatensatzes vorhanden ist.
  • Die Funktion Sorted behält die ursprüngliche Liste bei. Es überschreibt es nicht.
  • Dies bietet bessere tracEffizienz und effektives Datenmanagement.

Häufig gestellte Fragen

Übergeben Sie `key=str.lower` an die `sort()`-Methode, zum Beispiel `names.sort(key=str.lower)`. Jeder String wird in Kleinbuchstaben verglichen, sodass 'Apple' und 'banana' unabhängig von der Groß-/Kleinschreibung alphabetisch sortiert werden. Die ursprüngliche Schreibweise jedes Elements bleibt in der endgültigen sortierten Liste erhalten.

Das Sortieren einer Liste aller Zahlen oder aller Zeichenketten funktioniert, aber das Mischen von nicht verwandten Datentypen wie Ganzzahlen und Zeichenketten führt zu einem TypeError, weil Python Sie können nicht verglichen werden. Konvertieren Sie die Werte zuerst in einen vergleichbaren Datentyp oder übergeben Sie eine Schlüsselfunktion, die vergleichbare Schlüssel zurückgibt.

Python Früher wurde Timsort verwendet, eine Mischung aus Mergesort und Insertionsort. Seit Version 3.11 nutzt der Interpreter Powersort, eine von Timsort abgeleitete Variante mit einer intelligenteren Merge-Strategie. Beide sind stabil und haben im schlechtesten Fall eine Laufzeit von O(n log n).

Ja. Die Methode `sort()` ist stabil, sodass Elemente, die als gleichwertig gelten, ihre ursprüngliche Reihenfolge beibehalten. Dadurch können Sie nach mehreren Kriterien in mehreren Schritten sortieren, wobei Sie zuerst nach dem unwichtigsten und zuletzt nach dem wichtigsten Schlüssel sortieren.

Die Methode `sort()` hat im schlechtesten und durchschnittlichsten Fall eine Laufzeit von O(n log n). Bei bereits größtenteils sortierten Daten nähert sie sich O(n), da der zugrunde liegende Algorithmus bereits sortierte Datenreihen erkennt und wiederverwendet, anstatt sie neu zu sortieren.

Übergeben Sie einen Schlüssel, der jedes Element beim Vergleich umwandelt, z. B. `nums.sort(key=int)`. Die Liste wird dann nach numerischem Wert und nicht nach Zeichen sortiert, sodass '10' korrekt nach '9' einsortiert wird. Die gespeicherten Elemente bleiben Zeichenketten; nur der Vergleich verwendet ihren ganzzahligen Wert.

Sortierung ordnet Vorhersagen nach Punktzahl oder Wahrscheinlichkeit, wählt die besten k Ergebnisse in Ranking- und Empfehlungssystemen aus und ordnet Datensätze bei der Datenaufbereitung. Machine-Learning-Pipelines sortieren häufig Merkmalswerte oder Modellausgaben vor der Auswertung, daher ist die integrierte Methode `sort()` ein gängiger Vorverarbeitungsschritt.

Ja. GitHub Copilot und agentenbasierte KI-Assistenten generieren aus einem kurzen Kommentar Aufrufe von `sort()` und `sorted()`, einschließlich wichtiger Funktionen und Lambda-Ausdrücke. Sie können Schleifen in einzelne Sortieranweisungen umwandeln, dennoch sollten Sie die Sortierung testen und das Ergebnis in Grenzfällen überprüfen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: