Introduktion til sortering i Python

På et tidspunkt i en applikation eller et program er vi nødt til at sortere data i en eller anden rækkefølge, for eksempel sortere medarbejdere baseret på løn eller baseret på en eller anden rang, sortere produktlisten baseret på produktprisen og så alt sammen. I dette tilfælde skal udvikleren implementere sorteringen i et program, hvis udvikleren bruger sproget til programmering af python, vil det være meget let at implementere. Python leverer indbyggede funktioner til at udføre grundlæggende sortering eller tilpasse sorteringsfunktioner på det granulære niveau. Der er 2 indbyggede funktioner i python at sortere.

Lad os se, hvordan man sorterer forskellige typer data, sorterer data i tilpasset rækkefølge.

  • Vi er nødt til at udføre sortering på samlingen af ​​elementer eller grupper af elementer, så vi får en samling af elementer i en eller anden sorteringsrækkefølge. For sortering skal sammenligningen udføres mellem hvert element i samlingen og sammenligningen er kun mulig, og kun hvis de er af samme datatype, så sortering kan vi udføre på samling, hvis de er samme datatypeelementer, for eksempel heltal til heltal kan sammenligne, men ikke heltal til streng.
  • Det næste punkt er at oprette samlingen af ​​elementer, i python har vi lister, tuple, sæt og ordbog datastrukturer, der bruges til at gemme samlingen af ​​elementer. Så for at udføre sortering skal være at have en grundlæggende forståelse af afhandlinger. Vi bruger Python 3, syntaks kan være lidt anderledes, hvis du bruger Python 2 og eksempel output også.

Sorteringsfunktion i python

Der er to indbyggede sorteringsfunktioner i python.

  • sortere()
  • sorterede ()

To sorteringsfunktioner er nævnt nedenfor:

1. sortering ()

Sorteringsmetoden () sorterer elementerne i en given samlingsliste i en bestemt rækkefølge enten Stigende eller Faldende.

Syntaks for funktionen sortering () er:

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

  • nøgle - Parametertasterne specificerer funktionen, der bruges til sorteringssammenligning.
  • Omvendt - Parameteren omvendt, hvis sandt, den sorterede liste vendes, hvilket betyder sorteret i faldende rækkefølge.

For at få beskrivelsen af ​​sorteringsfunktionen bruger du hjælpekommandoen som angivet nedenfor.

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

Lad os starte sorteringsfunktionen med eksemplet.

Eksempel 1:

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

Produktion:

Som i ovenstående kode oprettes den usorterede liste (20, 50, 10, 40, 60) og anvender funktionen sortering () yderligere, som sorterer listen i stigende rækkefølge og ikke returnerer noget.

Dernæst prøver vi sortering () -funktion på decimal- eller float-datatype.

Eksempel 2:

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

Produktion:

Derefter prøver vi sortering () på char-datatypen.

Eksempel 3:

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

Produktion:

Dernæst prøver vi sortering () på String-datatype.

Eksempel 4:

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

Produktion:

Dernæst prøver vi sorteringsfunktion () på forskellige datatyperelementer.

Eksempel 5:

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

Produktion:

Dernæst prøver vi sortering () -funktion med revers-argumenter.

Eksempel 6:

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

Produktion:

I ovenstående kode oprettes den usorterede liste (26.7, 34.23, 67.45, 89.34, 23.18) og anvender sorteringsfunktionen længere med omvendt = Sand, standardværdien for reverse er False, som sorterer listen i omvendt rækkefølge eller faldende rækkefølge.

Dernæst vil vi prøve sorteringsfunktion () med nøgleargumenter:

Nøgleparameteren er den vigtigste komponent i sorteringsfunktionen. Til dette argument overføres en funktion, som vil blive brugt på hvert element på listen, der sorteres for at arrangere i den resulterende rækkefølge.

Lad os starte med eksemplet, antag at vi har en liste over strenge, og vi ønsker at sortere en liste baseret på længden på strengene på listen i stigende rækkefølge (korteste til længste længde). Den indbyggede len () -funktion i python returnerer længden på strengen, så len () kan bruges til at videregive nøgleargumentet.

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

Produktion:

Den resulterende rækkefølge af listen.sort (nøgle = len) er en liste over sorteringsstrenge i rækkefølge af kortest til længst. Mens liste.sort (nøgle = len, omvendt = sandt), der resulterer i en rækkefølge på listen, er længst til kortest længde. Længden på hvert element på listen bestemmes af funktionen len ().

Dernæst forsøger vi sortering () -funktion med tast, der passerer brugeren, definerer funktionen:

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

Produktion:

Den resulterende rækkefølge af listen.sort (key = sort_onSecondChar)) er en liste over sorteringsstrenge i rækkefølge efter stigning baseret på det andet tegn. Mens en liste.sort (key = sort_onSecondChar, reverse = True) resulterende rækkefølge af listen er faldende baseret på det andet tegn. Sorteringen af ​​hvert element på listen bestemmes af brugeren til at definere funktion sort_onSecondChar ().

2. sorteret ()

Funktionen sorteret () kaldes på listen eller samlingen, den returnerer den nye sorterede liste. Funktionen sorteret () redigerer eller ændrer ikke listen, som den kaldes til, men returnerer den sorterede liste som et resultat af den.

Syntaxen af ​​sorteret () -funktion:

sorted(iterable, key, reverse)

  • iterable - liste, tuple, streng, sæt, frosset sæt, ordbog enhver samling eller iterable, der skal sorteres.
  • reverse-reverse specificer, om den sorterede liste, der skal reverseres eller ej (det er faldende rækkefølge). det er
  • -tast - specificer funktionen som en nøgle, der skal sammenlignes for sorteringen. Det er valgfrit .

For at få beskrivelsen af ​​sorteringsfunktionen bruger du hjælpekommandoen som angivet nedenfor.

Overvej eksemplerne:

Eksempel 9:

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

Produktion:

Bemærk, at vi også kan bruge list.sort () -funktionen til at udføre det samme, men forskellene er, funktionen sortering () ændrer selve listen på stedet og returnerer Ingen som outputresultatet. En anden forskel i funktionen list.sort () er, at den kan gælde for den eneste liste, mens den sorterede () kan gælde for enhver samling eller iterable.

Lad os se eksemplet, hvor vi opretter tuplen (vi ved, at for at oprette tuple-brug (og) seler og tuple-funktioner, hvis det er bestilt, det gemmer duplikater, kan ikke anvendes til indeks, og det er uforanderligt) og anvende sorteret () -funktion .

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

Produktion:

Hvis funktionen sortering (), der er anvendt på tuplen, giver den “AttributeError: 'tuple' -objektet har ingen attribut 'sort'-fejl.

Så sortering () -funktionen kan ikke gælde for tuplen, og kan heller ikke gælde for andre samlinger undtagen listen.

Dernæst vil vi se nogle eksempler med forskellige datatyper:

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

Produktion:

Dernæst vil vi prøve sorteret () -funktion med omvendt parameter:

Lad os overveje eksemplet:

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

Produktion:

Dernæst vil vi se sorteret () -funktion med nøgleparameteren, i nedenstående kode klikkes der passerer len () -funktionen til nøgleparameteren, så derefter sorteres () -funktionen en liste i sorteringsrækkefølge baseret på elementernes længde.

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

Produktion:

Dernæst vil vi se en sorteret () -funktion med nøgleparameter, da brugeren definerer funktionen, i nedenstående kode klikkes ved at vende returnSecond () -funktion til nøgleparameter. Funktionen returnSecond () er brugeren, der definerer funktionen, som netop returnerer det andet element, så den sorterede () -funktion returnerer en ny sorteret liste i sorteringsrækkefølge baseret på det andet element i tuplen. Hvis vi ønsker at sortere på basis af det første element, rediger derefter funktionen returnSecond () for at returnere det første element som (L (0)).

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

Produktion:

Vi ændrer ovenstående kode ved hjælp af lambda-funktionen (lambda-funktionen er anonym funktion, simulerer det samme som inline-funktioner for C og C ++).

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

Produktion:

Ovenstående kode ændres til sortering baseret på det første element ved at ændre lambda-funktionen.

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

Produktion:

Lad os nu oprette en liste over studerendes detaljer og gemme hver studerendes detaljer den tuple, vi vil bruge. Én tuple indeholder en studentrekord, det første element i tuplen er den studerendes navn, det andet element er studentens rulle nr. Og det tredje element er studentens samlede karakter. Dernæst vil vi gemme de studerendes detaljer i rækkefølge af deres karakterer, så lad os starte kodningen.

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

Produktion:

Konklusion

Funktionen sortering () og sorteret () bruges til at sortere samlingen. List.sort () redigerer til selve listen, mens den sorterede (liste), der ikke redigeres til listen, returnerer den nye sorterede liste. Funktionen sortering () gælder kun for listen, mens funktionen sorteret () kan gælde for alle samlinger som liste, tuple, ordbog og alt.

Anbefalede artikler

Dette er en guide til sortering i Python. Her diskuterer vi de to indbyggede sorteringsfunktioner i python med programmet og output. Du kan også se på den følgende artikel for at lære mere -

  1. Python-variabler
  2. Destruktor i Python
  3. Python-databaseforbindelse
  4. Python Editors
  5. PL / SQL-datatyper
  6. Forskellige typer af SQL-data med eksempler

Kategori: