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: