Python Liste sort() mit Beispielen

Was ist die sort()-Methode in Python?

Sortierfunktion in Python hilft beim Sortieren einer Liste in aufsteigender oder absteigender Reihenfolge. Es kann zum Sortieren einer numerischen Liste, von Tupeln und einer Zeichenfolgenliste verwendet werden. Es erstellt keine separate Liste, sondern ändert oder sortiert das Original.

Syntax der Sort-Methode in Python

Die Sortierfunktion hat die folgende Syntax: –

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

Die Sortierfunktion verfügt über zwei optionale Parameter, nämlich wie unten aufgeführt: –

  • Schlüssel: – Dies wird verwendet, um eine Funktion basierend auf einem Sortierkriterium zu sortieren.
  • Reverse: – der Wert wird entweder als true oder als false angenommen. Wenn 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-Erklärung:

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

Schauen wir uns das folgende Beispiel an: –

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. Nachfolgend finden Sie die Syntax für den Lambda-Ausdruck: –

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 beim Sortieren der Elemente in einem Tupel hilft:-

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-Erklärung:

  • 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 eingebaute Funktion, die die Länge des Elements bestimmt. Die ermittelte Länge kann für die Indizierung in der Sortierfunktion verwendet werden. Dazu weisen wir Len dem 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-Erklärung:

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 in der Liste an erster Stelle, gefolgt von Guru99 mit einer Länge von 6.

Dieses Beispiel veranschaulicht das Konzept des Reverse-Parameters in der Sortierfunktion wie unten gezeigt: –

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 zum Sortieren einer Liste verwenden. 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-Erklärung:

  • 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

Bevor wir die Unterschiede zusammenfassen, wollen wir uns mit der Syntax der Sorted-Methode befassen.

Python Syntax:

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

Code-Erklärung:

  • 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 wie unten gezeigt: –

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-Erklärung:

  • 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 sind die wichtigsten Ähnlichkeiten 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-Erklärung:

  • 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 eine bessere Rückverfolgbarkeit und ein effektives Datenmanagement.

Fazit

  • Die Sortierfunktion hilft beim Sortieren einer numerischen und Zeichenfolgenliste in Python.
  • Es kann auch beim Sortieren von Tupeln hilfreich sein.
  • Reverse und key sind optionale Parameter der Funktion.
  • Wenn eine separate Liste und gleichzeitig die Originalliste erforderlich sind, muss die Sortierfunktion verwendet werden, andernfalls muss die Sortierfunktion verwendet werden, um eine optimierte Speichernutzung zu erreichen.