Einführung in das Sortieren in Python

Irgendwann in einer Anwendung oder einem Programm müssen wir die Daten in einer bestimmten Reihenfolge sortieren, z. B. Mitarbeiter nach Gehalt oder Rang sortieren, die Produktliste nach Produktpreis sortieren und so weiter. In diesem Fall muss der Entwickler die Sortierung in einem Programm implementieren. Wenn der Entwickler die Programmiersprache Python verwendet, ist die Implementierung sehr einfach. Python bietet integrierte Funktionen zum Ausführen grundlegender Sortierfunktionen oder zum Anpassen von Sortierfunktionen auf granularer Ebene. Es gibt 2 eingebaute Funktionen in Python, die sortiert werden können.

Sehen wir uns an, wie Sie verschiedene Datentypen sortieren und die Daten in der benutzerdefinierten Reihenfolge sortieren.

  • Wir müssen die Auflistung von Elementen oder Elementgruppen sortieren, damit wir eine Auflistung von Elementen in einer bestimmten Sortierreihenfolge erhalten. Zum Sortieren muss der Vergleich für jedes Element der Auflistung durchgeführt werden, und der Vergleich ist nur möglich und nur dann, wenn es sich um denselben Datentyp handelt. Daher können wir die Auflistung sortieren, wenn es sich um Elemente des gleichen Datentyps handelt, z. B. Ganzzahl zu Ganzzahl kann vergleichen, aber nicht ganzzahlig mit string.
  • Der nächste Punkt ist das Erstellen der Auflistung von Elementen. In Python haben wir Listen-, Tupel-, Mengen- und Wörterbuchdatenstrukturen, die zum Speichern der Auflistung von Elementen verwendet werden. Um eine Sortierung durchführen zu können, muss man ein grundlegendes Verständnis für diese Themen haben. Wir werden Python 3 verwenden. Die Syntax kann leicht abweichen, wenn Sie Python 2 und eine Beispielausgabe verwenden.

Sortierfunktion in Python

Es gibt zwei eingebaute Sortierfunktionen in Python.

  • Sortieren()
  • sortiert ()

Zwei Sortierfunktionen werden nachfolgend erwähnt:

1. sort ()

Die sort () -Methode sortiert die Elemente einer bestimmten Sammlungsliste in einer bestimmten Reihenfolge, entweder Aufsteigend oder Absteigend.

Die Syntax der sort () -Funktion lautet:

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

  • key - Die Parameterfunktion keyspecify, die für den Sortiervergleich verwendet wird.
  • Reverse - Der Parameter ist umgekehrt, wenn true, wird die sortierte Liste umgekehrt, dh in absteigender Reihenfolge sortiert.

Um die Beschreibung der Sortierfunktion abzurufen, verwenden Sie den Hilfebefehl wie unten angegeben.

>>> lis=(1, 4, 3, 2) >>> help( lis.sort )

Beginnen wir die Sortierfunktion mit dem Beispiel.

Beispiel 1:

l = ( 20, 50, 10, 40, 60 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

Ausgabe:

Wie im obigen Code wird die unsortierte Liste erstellt (20, 50, 10, 40, 60) und die sort () - Funktion angewendet, die die Liste in aufsteigender Reihenfolge sortiert und nichts zurückgibt.

Als Nächstes versuchen wir die sort () - Funktion für den Datentyp decimal oder float.

Beispiel # 2:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("list = ", l)
l.sort()
print("sorted list = ", l)

Ausgabe:

Als nächstes versuchen wir die sort () - Funktion für den char-Datentyp.

Beispiel # 3:

l = ( 'b', 'd', 'a', 'n', 'g') print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Ausgabe:

Als Nächstes versuchen wir die sort () - Funktion für den String-Datentyp.

Beispiel # 4:

l = ( "banana", "apple", "orange", "mango" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Ausgabe:

Als Nächstes versuchen wir die sort () - Funktion für verschiedene Datentypelemente.

Beispiel # 5:

l = ( 89, 56.78, "apple" ) print("liist = ", l)
l.sort()
print("sorted liist = ", l)

Ausgabe:

Als nächstes versuchen wir sort () - Funktion mit Umkehrargumenten.

Beispiel # 6:

l = ( 26.7, 34.23, 67.45, 89.34, 23.18 ) print("liist = ", l)
l.sort( reverse = True )
print("sorted liist = ", l)

Ausgabe:

Im obigen Code wird die unsortierte Liste erstellt (26.7, 34.23, 67.45, 89.34, 23.18) und weiter die sort () - Funktion mit reverse = True angewendet. Der Standardwert von reverse ist False, wodurch die Liste in umgekehrter Reihenfolge oder sortiert wird absteigende Reihenfolge.

Als nächstes werden wir die sort () - Funktion mit Schlüsselargumenten versuchen:

Der Schlüsselparameter ist die wichtigste Komponente der sort () - Funktion. An dieses Argument wird eine Funktion übergeben, die für jedes Element in der Liste verwendet wird, das sortiert wird, um es in der resultierenden Reihenfolge anzuordnen.

Beginnen wir mit dem Beispiel, nehmen wir an, dass wir eine Liste von Zeichenfolgen haben und eine Liste basierend auf der Länge der Zeichenfolgen in der Liste in aufsteigender Reihenfolge (kürzeste bis längste Länge) sortieren möchten. Die in Python integrierte Funktion len () gibt die Länge der Zeichenfolge zurück, sodass len () zum Übergeben des Schlüsselarguments verwendet werden kann.

Beispiel # 7:

word = "Hello"
length = len(word)
print( "The length of word is ", length)
l = ( "aaa", "bbbbb", "cc", "ddd" ) print("liist = ", l)
print( "The length of list is ", len(l))
# length of the list is 4, because it contains 4 elements
# Now we sort the list based on the length of the list elements
l.sort( key = len )
print("Sorted liist = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort(key = len, reverse = True)
print("Sorted liist with reverse = ", l)

Ausgabe:

Die resultierende Reihenfolge der list.sort (key = len) ist eine Liste von Sortierzeichenfolgen in der Reihenfolge der kürzesten bis längsten. Während list.sort (key = len, reverse = True) eine Reihenfolge der Liste ergibt, ist die längste bis kürzeste Länge. Die Länge jedes Elements in der Liste wird durch die Funktion len () bestimmt.

Als nächstes versuchen wir es mit der sort () - Funktion, wobei der Benutzer die Funktion übergibt:

Beispiel # 8:

l = ( 'banana', 'orange', 'apple' ) print("liist = ", l)
# function return second element
def sort_onSecondChar(word):
return word(1) l.sort( key = sort_onSecondChar )
print("Sorted liist based on second character = ", l)
# Now we sort the list based on the length of the list elements and reverse
l.sort( key = sort_onSecondChar, reverse = True)
print("Sorted liist based on second character with reverse = ", l)

Ausgabe:

Die resultierende Reihenfolge von list.sort (key = sort_onSecondChar) ist eine Liste von Sortierzeichenfolgen in aufsteigender Reihenfolge basierend auf dem zweiten Zeichen. Während eine list.sort (key = sort_onSecondChar, reverse = True) resultierende Reihenfolge der Liste auf der Grundlage des zweiten Zeichens absteigend ist. Die Sortierung jedes Elements in der Liste wird vom Benutzer festgelegt, um die Funktion sort_onSecondChar () zu definieren.

2. sortiert ()

Durch den Aufruf der sort () -Funktion für die Liste oder Sammlung wird die neue sortierte Liste zurückgegeben. Die sort () - Funktion bearbeitet oder ändert die Liste, in der sie aufgerufen wird, nicht, gibt jedoch die sortierte Liste als Ergebnis zurück.

Die Syntax der sortierten () Funktion:

sorted(iterable, key, reverse)

  • iterable - liste, tuple, string, set, frozen set, wörterbuch jede sammlung oder iterable die sortiert werden muss.
  • reverse-reverse gibt an, ob die sortierte Liste umgekehrt werden soll oder nicht (dh absteigende Reihenfolge). Es ist
  • Taste - Geben Sie die Funktion als Taste für den Vergleich der Sortierung an. Es ist freiwillig .

Um die Beschreibung der Sortierfunktion abzurufen, verwenden Sie den Hilfebefehl wie unten angegeben.

Betrachten Sie die Beispiele:

Beispiel # 9:

l = ( 2, 1, 3, 6, 5, 4 ) print("list = ", l)
sorted(l)
print( "The sorted list = ", l)

Ausgabe:

Beachten Sie, dass wir auch die Funktion list.sort () verwenden können, um dasselbe Ergebnis zu erzielen. Der Unterschied besteht jedoch darin, dass die Funktion sort () die Liste selbst ändert und None als Ausgabeergebnis zurückgibt. Ein weiterer Unterschied der Funktion list.sort () besteht darin, dass sie auf die einzige Liste angewendet werden kann, wohingegen sort () auf jede Sammlung oder Iteration angewendet werden kann.

Schauen wir uns das Beispiel an, in dem wir das Tupel erstellen (wir wissen, dass zum Erstellen von Tupeln geschweifte Klammern und Tupelfunktionen verwendet werden, wenn es geordnet ist, Duplikate speichert, nicht auf den Index angewendet werden kann und unveränderlich ist) und die sortierte () Funktion anwenden .

Beispiel # 10:

t = ( 60, 20, 40, 10 )
print("Tuple = ", t)
re=sorted(t)
#print return of sorted()
print( "The return sorted list of sorted() = ", re)
#we check what is there in t
print( "After sorted tuple = ", t)

Ausgabe:

Wenn die sort () - Funktion auf das Tupel angewendet wird, gibt es den Fehler "AttributeError: 'tuple' object hat kein Attribut 'sort'".

Die sort () - Funktion kann also nicht auf das Tupel angewendet werden, auch nicht auf andere Sammlungen außer list.

Als nächstes sehen wir einige Beispiele mit verschiedenen Datentypen:

Beispiel # 11:

l = ( 2.89, 56.34, 45.23 ) print("List of floating numbers = ", l)
re=sorted(l)
#print return of sorted()
print( "The return list of sorted() floating numbers = ", re)
lc = ( 'l', 'e', 'g', 'a', 'd' ) print("List of characters = ", lc)
re=sorted(lc)
#print return of sorted()
print( "The return list of sorted() characters = ", re)

Ausgabe:

Als nächstes werden wir die sortierte () Funktion mit dem umgekehrten Parameter versuchen:

Betrachten wir das Beispiel:

Beispiel # 12:

l = ( 2, 1, 3, 6, 5, 4 ) print("List = ", l)
re=sorted(l, reverse=True )
#print return of sorted()
print( "The return list of sorted() with reverse = ", re)

Ausgabe:

Als Nächstes sehen wir eine sortierte () -Funktion mit dem Schlüsselparameter. Im folgenden Code wird die len () -Funktion an den Schlüsselparameter übergeben, sodass die sortierte () -Funktion eine Liste in Sortierreihenfolge basierend auf der Länge der Elemente zurückgibt.

Beispiel # 13:

l = ('aaaa', 'bb', 'ccc', 'ddddd') print("List = ", l)
re=sorted(l, key = len )
#print return of sorted()
print( "The return list of sorted() with key = ", re)

Ausgabe:

Als Nächstes sehen wir eine sortierte () -Funktion mit Schlüsselparameter, während der Benutzer die Funktion definiert. Im folgenden Code wird die returnSecond () -Funktion an den Schlüsselparameter übergeben. Mit der Funktion returnSecond () kann der Benutzer die Funktion definieren, die nur das zweite Element zurückgibt. Die Funktionorted () gibt also eine neue sortierte Liste in der Sortierreihenfolge zurück, die auf dem zweiten Element des Tupels basiert. Wenn Sie nach dem ersten Element sortieren möchten, bearbeiten Sie die Funktion returnSecond (), um das erste Element als (L (0)) zurückzugeben.

Beispiel # 14:

# return second element for sort
def returnSecond( L ):
return L(1) # list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = returnSecond (returnSecond function which return second element so sort done based on seceond elemet)
sortedList = sorted(list, key = returnSecond)
# print list
print('The sorted list:', sortedList)

Ausgabe:

Wir ändern den obigen Code mit der Lambda-Funktion (die Lambda-Funktion ist eine anonyme Funktion und simuliert die gleichen wie die Inline-Funktionen von C und C ++).

Beispiel # 15:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(1) (lambda function which return second element so sort done based on second element)
sortedList = sorted( list, key = lambda x : x(1))
print( "The sorted list = ", sortedList)

Ausgabe:

Der obige Code ändert sich, um basierend auf dem ersten Element zu sortieren, indem die Lambda-Funktion geändert wird.

Beispiel # 16:

# list of tuple
list = ( ('a', 40), ('b', 30), ('c', 20), ('d', 10) ) # sorting list with key = lambda x : x(0) (lambda function which return first element so sort done based on first element)
sortedList = sorted( list, key = lambda x : x(0))
# print list
print('The sorted list:', sortedList)

Ausgabe:

Nun erstellen wir eine Liste mit Schülerdetails und speichern für jeden Schüler das Tupel, das wir verwenden werden. Ein Tupel enthält einen Schülerdatensatz, das erste Element im Tupel ist der Name des Schülers, das zweite Element ist die Rollennummer des Schülers und das dritte Element ist die Gesamtnote des Schülers. Als nächstes wollen wir die Schülerdaten in der Reihenfolge ihrer Noten speichern, also lasst uns mit dem Codieren beginnen.

Beispiel # 17:

students = ( ('john', 1, 60), ('jane', 2, 70), ('dave', '3', 70.5), ('joseph', 1, 92) ) print( "The Student List = ", students)
# sorting the student list of tuple based on the third element that is marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The sorted list = ", sortedlist)
#reverese
sortedlist = sorted(students, key=lambda stud : stud(2), reverse=True)
print("The sorted list with reverse=True ", sortedlist)
# Display the student name and marks in sorting order of their marks
sortedlist = sorted(students, key=lambda stud : stud(2))
print("The student names and marks in order of their marks")
print("name", "marks")
for x in sortedlist:
print(x(0), x(2))

Ausgabe:

Fazit

Die Funktionen sort () und organized () dienen zum Sortieren der Sammlung. Das list.sort () bearbeitet die Liste selbst, wohingegen das sortierte (Liste) nicht die Liste bearbeitet, die neu sortierte Liste zurückgibt. Die sort () -Funktion gilt nur für die Liste, während die sort () -Funktion für alle Sammlungen wie list, tuple, dictionary und all gilt.

Empfohlene Artikel

Dies ist eine Anleitung zum Sortieren in Python. Hier diskutieren wir die beiden eingebauten Sortierfunktionen in Python mit dem Programm und der Ausgabe. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Python-Variablen
  2. Destruktor in Python
  3. Python-Datenbankverbindung
  4. Python-Editoren
  5. PL / SQL-Datentypen
  6. Verschiedene Arten von SQL-Daten mit Beispielen