Inleiding tot sorteren in Python

Op een bepaald moment in een applicatie of programma moeten we gegevens in een bepaalde volgorde sorteren, bijvoorbeeld werknemers sorteren op basis van salaris of op basis van een rang, de productlijst sorteren op basis van de productprijs, enzovoort. In dat geval moet de ontwikkelaar het sorteren in een programma implementeren, als de ontwikkelaar de programmeertaal python gebruikt, dan is het zeer eenvoudig te implementeren. Python biedt ingebouwde functies om basissortering uit te voeren of sorteerfuncties op korrelniveau aan te passen. Er zijn 2 ingebouwde functies in python om te sorteren.

Laten we eens kijken hoe we verschillende soorten gegevens kunnen sorteren, gegevens in aangepaste volgorde kunnen sorteren.

  • We moeten sorteren op de verzameling elementen of groepen elementen, zodat we een verzameling elementen in een sorteervolgorde krijgen. Voor het sorteren moet de vergelijking tussen elk element van de verzameling worden uitgevoerd en vergelijking is alleen mogelijk en alleen als ze hetzelfde gegevenstype hebben, dus sorteren kunnen we bij het verzamelen uitvoeren als ze hetzelfde gegevenstype-elementen zijn, bijvoorbeeld geheel tot geheel kan vergelijken maar niet geheel naar string.
  • Het volgende punt is om de verzameling elementen te maken, in python hebben we lijsten, tuple, set en woordenboek datastructuren waarmee de verzameling elementen werd opgeslagen. Om sorteren uit te voeren, moet je dus een basiskennis van deze stellingen hebben. We zullen Python 3 gebruiken, de syntaxis kan enigszins afwijken als u Python 2 en voorbeelduitvoer ook gebruikt.

Sorteerfunctie in python

Er zijn twee ingebouwde sorteerfuncties in python.

  • soort()
  • gesorteerd ()

Twee sorteerfuncties worden hieronder vermeld:

1. sort ()

De methode sort () sorteert de elementen van een bepaalde verzamellijst in een specifieke volgorde, oplopend of aflopend.

De syntaxis van de functie sort () is:

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

  • key - De parameter keyspecify-functie die wordt gebruikt voor de sorteervergelijking.
  • Omgekeerd - De parameter omgekeerd indien waar, de gesorteerde lijst is omgekeerd, wat betekent gesorteerd in aflopende volgorde.

Om de beschrijving van de sorteerfunctie te krijgen, gebruikt u de help-opdracht zoals hieronder gegeven.

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

Laten we de sorteerfunctie beginnen met het voorbeeld.

Voorbeeld 1:

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

Output:

Net als in de bovenstaande code, wordt de ongesorteerde lijst gemaakt (20, 50, 10, 40, 60) en past u verder de functie sort () toe, die de lijst in oplopende volgorde sorteert en niets retourneert.

Vervolgens proberen we de functie sort () op het decimale of zwevende gegevenstype.

Voorbeeld 2:

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

Output:

Vervolgens proberen we de functie sort () op het gegevenstype char.

Voorbeeld 3:

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

Output:

Vervolgens proberen we de functie sort () op het gegevenstype String.

Voorbeeld 4:

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

Output:

Vervolgens proberen we de functie sort () op verschillende elementen van gegevenstypen.

Voorbeeld 5:

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

Output:

Vervolgens proberen we de functie sort () met omkeerargumenten.

Voorbeeld 6:

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

Output:

In de bovenstaande code wordt de ongesorteerde lijst gemaakt (26.7, 34.23, 67.45, 89.34, 23.18) en past u de functie sort () verder toe met reverse = True, de standaardwaarde van reverse is False, die de lijst in omgekeerde volgorde sorteert of aflopende volgorde.

Vervolgens zullen we de functie sort () proberen met belangrijke argumenten:

De sleutelparameter is het belangrijkste onderdeel van de functie sort (). Aan dit argument wordt een functie doorgegeven die wordt gebruikt voor elk element in de lijst die wordt gesorteerd om in de resulterende volgorde te rangschikken.

Laten we het voorbeeld beginnen, stel dat we een lijst met tekenreeksen hebben en we willen een lijst sorteren op basis van de lengte van de tekenreeksen in de lijst in oplopende volgorde (kortste naar langste lengte). De ingebouwde len () functie in python geeft de lengte van de string terug, dus len () kan worden gebruikt om het sleutelargument door te geven.

Voorbeeld 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)

Output:

De resulterende volgorde van de list.sort (key = len) is een lijst met sorteerreeksen in volgorde van kortste naar langste. Terwijl list.sort (key = len, reverse = True) resulterend in een volgorde van de lijst de langste tot de kortste lengte heeft. De lengte van elk element in de lijst wordt bepaald door de functie len ().

Vervolgens proberen we de functie sort () met de sleutel die de gebruiker passeert om de functie te definiëren:

Voorbeeld 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)

Output:

De resulterende volgorde van de list.sort (key = sort_onSecondChar)) is een lijst met sorteerreeksen in oplopende volgorde op basis van het tweede teken. Terwijl een list.sort (key = sort_onSecondChar, reverse = True) resulterende volgorde van lijst afneemt op basis van het tweede teken. De sortering van elk element in de lijst wordt bepaald door de gebruiker om de functie sort_onSecondChar () te definiëren.

2. gesorteerd ()

De sort () functie-aanroep in de lijst of verzameling, geeft de nieuwe gesorteerde lijst terug. Met de functie Sort () wordt de lijst waarop deze wordt aangeroepen niet bewerkt of gewijzigd, maar wordt de gesorteerde lijst als resultaat hiervan geretourneerd.

De syntaxis van sort ():

sorted(iterable, key, reverse)

  • iterable - lijst, tuple, string, set, bevroren set, woordenboek elke verzameling of iterabele die moeten sorteren.
  • reverse- reverse geeft aan of de gesorteerde lijst moet worden omgekeerd of niet (dat is de aflopende volgorde). Het is
  • toets - geef de functie op als een toets om te vergelijken voor de sortering. Het is optioneel .

Om de beschrijving van de sorteerfunctie te krijgen, gebruikt u de help-opdracht zoals hieronder gegeven.

Overweeg de voorbeelden:

Voorbeeld # 9:

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

Output:

Merk op dat we ook de functie list.sort () kunnen gebruiken om hetzelfde uit te voeren, maar de verschillen zijn, de functie sort () wijzigt de lijst zelf en retourneert None als het uitvoerresultaat. Een ander verschil met de functie list.sort () is dat deze kan worden toegepast op de enige lijst, terwijl de sorted () kan worden toegepast op elke verzameling of iterabel.

Laten we het voorbeeld bekijken waarin we de tuple maken (we weten dat om tuple te maken gebruik van (en) accolades en tuple-functies als het is besteld, het duplicaten opslaat, niet van toepassing kan zijn op de index en het is onveranderlijk) en de functie sort () toepassen .

Voorbeeld 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)

Output:

Als de functie sort () wordt toegepast op het tuple, geeft dit de fout "AttributeError: 'tuple' heeft geen kenmerk 'sort'".

De functie sort () kan dus niet van toepassing zijn op het tuple, zelfs niet op andere collecties behalve de lijst.

Vervolgens zien we enkele voorbeelden met verschillende gegevenstypen:

Voorbeeld 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)

Output:

Vervolgens zullen we de functie Sort () proberen met de parameter reverse:

Laten we het voorbeeld bekijken:

Voorbeeld 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)

Output:

Vervolgens zien we de functie sort () met de parameter key, in onderstaande code snapt de functie len () door naar de parameter key, dus de functie sort () retourneert een lijst in sorteervolgorde op basis van de lengte van de elementen.

Voorbeeld 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)

Output:

Vervolgens zullen we een sort () -functie met sleutelparameter zien terwijl de gebruiker de functie definieert, in de onderstaande code snapt de functie returnSecond () doorgeeft aan de sleutelparameter. De functie returnSecond () is de gebruiker die de functie definieert, die zojuist het tweede element retourneert, dus de functie sort () retourneert een nieuwe gesorteerde lijst in sorteervolgorde op basis van het tweede element van het tuple. Als we willen sorteren op basis van het eerste element, bewerk dan de functie returnSecond () om het eerste element te retourneren als (L (0)).

Voorbeeld 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)

Output:

We wijzigen de bovenstaande code met behulp van de lambda-functie (de lambda-functie is een anonieme functie, simuleert hetzelfde als inline-functies van C en C ++).

Voorbeeld 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)

Output:

De bovenstaande code wijzigt om te sorteren op basis van het eerste element door de lambdafunctie te wijzigen.

Voorbeeld 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)

Output:

Laten we nu een lijst met studentdetails maken en om de details van elke student op te slaan die we zullen gebruiken. Eén tuple bevat één studentrecord, het eerste element in de tuple is de naam van de student, het tweede element is het rolnummer van de student en het derde element is het totale cijfer van de student. Vervolgens willen we de studentdetails opslaan op volgorde van hun cijfers, dus laten we beginnen met coderen.

Voorbeeld 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))

Output:

Conclusie

De functies sort () en sort () gebruiken om de verzameling te sorteren. De list.sort () wordt naar de lijst zelf bewerkt, terwijl de gesorteerde (lijst) niet naar de lijst wordt bewerkt, de nieuwe gesorteerde lijst retourneert. De functie sort () is alleen van toepassing op de lijst, terwijl de functie sort () van toepassing kan zijn op alle collecties zoals lijst, tuple, woordenboek en alles.

Aanbevolen artikelen

Dit is een gids voor sorteren in Python. Hier bespreken we de twee ingebouwde sorteerfunctie in python met het programma en de uitvoer. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. Python-variabelen
  2. Destructor in Python
  3. Python-databaseverbinding
  4. Python-editors
  5. PL / SQL-gegevenstypen
  6. Verschillende soorten SQL-gegevens met voorbeelden