Introduksjon til sortering i Python

På et tidspunkt i en applikasjon eller et program, må vi sortere data i en eller annen rekkefølge, for eksempel, sortere ansatte basert på lønn eller basert på noen rangering, sortere produktlisten basert på produktprisen og så alt. I så fall må utvikleren implementere sorteringen i et program, hvis utvikleren bruker python programmeringsspråket vil det være veldig enkelt å implementere. Python tilbyr innebygde funksjoner for å utføre grunnleggende sortering eller tilpasse sorteringsfunksjoner på kornet nivå. Det er 2 innebygde funksjoner i python å sortere.

La oss se hvordan du sorterer forskjellige typer data, sorterer data i tilpasset rekkefølge.

  • Vi må utføre sortering på samlingen av elementer eller grupper av elementer slik at vi får en samling av elementer i en eller annen sorteringsrekkefølge. For sortering må sammenligningen utføres mellom hvert element i samlingen og sammenligning er bare mulig, og bare hvis de er av samme datatype, så sortering kan vi utføre på samling hvis de er samme datatypeelementer, for eksempel heltall til heltall kan sammenligne, men ikke heltall, til streng.
  • Neste punkt er å lage en samling av elementer, i python har vi lister, tuple, sett og ordbok datastrukturer som brukes til å lagre samlingen av elementer. Så for å utføre sortering må det være å ha en grunnleggende forståelse av avhandlingene. Vi bruker Python 3, syntaksen kan være litt annerledes hvis du bruker Python 2 og eksempelutgang også.

Sorteringsfunksjon i python

Det er to innebygde sorteringsfunksjoner i python.

  • sortere()
  • sorterte ()

To sorteringsfunksjoner er nevnt nedenfor:

1. sorter ()

Sorteringsmetoden () sorterer elementene i en gitt samleliste i en bestemt rekkefølge enten Stigende eller Synkende.

Syntaks for sorteringsfunksjonen er:

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

  • tast - Parametertastene spesifiserer funksjonen som brukes til sorteringssammenligning.
  • Reverse - Parameteren revers hvis den er sann, den sorterte listen er reversert, som betyr sortert i synkende rekkefølge.

For å få beskrivelsen av sorteringsfunksjonen bruker du hjelpekommandoen som gitt nedenfor.

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

La oss starte sorteringsfunksjonen med eksemplet.

Eksempel 1:

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

Produksjon:

Som i koden ovenfor, opprettes den usorterte listen (20, 50, 10, 40, 60) og bruker sorteringsfunksjonen videre, som sorterer listen i stigende rekkefølge og ikke returnerer noe.

Deretter prøver vi sortering () -funksjon på desimal- eller flytedatatype.

Eksempel 2:

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

Produksjon:

Deretter prøver vi sortering () -funksjonen på char data-typen.

Eksempel 3:

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

Produksjon:

Deretter prøver vi sortering () på String-datatype.

Eksempel 4:

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

Produksjon:

Deretter prøver vi sortering () -funksjon på forskjellige datatyperelementer.

Eksempel 5:

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

Produksjon:

Deretter prøver vi å sortere () -funksjonen 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)

Produksjon:

I koden ovenfor opprettes den usorterte listen (26.7, 34.23, 67.45, 89.34, 23.18) og bruker sorteringsfunksjonen lenger med omvendt = True, standardverdien for revers er False, som sorterer listen i omvendt rekkefølge eller Synkende rekkefølge.

Deretter vil vi prøve sorteringsfunksjon () med nøkkelargumenter:

Nøkkelparameteren er den viktigste komponenten i sorteringsfunksjonen. Til dette argumentet passeres en funksjon som vil bli brukt på hvert element i listen som blir sortert for å ordne i den resulterende rekkefølgen.

La oss starte eksemplet, anta at vi har en liste over strenger, og vi vil sortere en liste basert på lengden på strengene i listen i stigende rekkefølge (kortest til lengste lengde). Den innebygde len () -funksjonen i python returnerer lengden på strengen, så len () kan brukes til å passere nøkkelargumentet.

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)

Produksjon:

Den resulterende rekkefølgen på listen.sort (nøkkel = len) er en liste over sorteringsstrenger i rekkefølgen av kortest til lengst. Mens list.sort (nøkkel = len, omvendt = sant) som resulterer i en rekkefølge på listen er lengst til korteste lengde. Lengden på hvert element på listen bestemmes av len () -funksjonen.

Deretter prøver vi å sortere () -funksjonen med tasten som passerer brukeren, definere funksjonen:

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)

Produksjon:

Den resulterende rekkefølgen på listen.sort (key = sort_onSecondChar)) er en liste over sorteringsstrenger i rekkefølge etter stigning basert på det andre tegnet. Mens en liste.sort (key = sort_onSecondChar, reverse = True) resulterende rekkefølge på listen synker, basert på andre tegn. Sorteringen av hvert element i listen bestemmes av brukeren til å definere funksjonen sort_onSecondChar ().

2. sortert ()

Den sorterte () funksjonen ringer på listen eller samlingen, den returnerer den nye sorterte listen. Den sorterte () -funksjonen redigerer eller endrer ikke listen som den heter, men den returnerer den sorterte listen som et resultat av den.

Syntax of sorted () -funksjonen:

sorted(iterable, key, reverse)

  • iterable - liste, tuple, streng, sett, frosset sett, ordbok hvilken som helst samling eller iterable som trenger å sortere.
  • revers-reverse spesifiser om den sorterte listen som skal reverseres eller ikke (det er synkende rekkefølge). Det er
  • tast - spesifiser funksjonen som en nøkkel for å sammenligne for sorteringen. Det er valgfritt .

For å få beskrivelsen av sorteringsfunksjonen bruker du hjelpekommandoen som gitt nedenfor.

Tenk på eksemplene:

Eksempel 9:

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

Produksjon:

Legg merke til at vi også kan bruke list.sort () -funksjonen til å utføre det samme, men forskjellene er, sorteringsfunksjonen endrer selve listen på stedet og returnerer Ingen som utgangsresultatet. En annen forskjell i list.sort () -funksjonen er at den kan gjelde for den eneste listen, mens den sorterte () kan gjelde for enhver samling eller iterable.

La oss se eksemplet der vi oppretter tupelen (vi vet at for å lage tuple bruk (og) seler og tuple funksjoner er det bestilt, det lagrer duplikater, kan ikke gjelde for indeks, og det er uforanderlig) og bruke sortert () -funksjon .

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)

Produksjon:

Hvis sortering () -funksjonen som brukes på tupelen, gir den “AttributeError: 'tuple' -objektet har ingen attributt 'sort' -feil.

Så sortering () -funksjonen kan ikke gjelde for tupelen, og kan heller ikke gjelde for andre samlinger unntatt liste.

Deretter vil vi se noen eksempler med forskjellige 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)

Produksjon:

Deretter vil vi prøve sortert () -funksjon med omvendt parameter:

La oss se på 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)

Produksjon:

Deretter vil vi se sortert () -funksjon med nøkkelparameteren, i koden nedenfor klikkes passerende len () -funksjon til nøkkelparameteren, så vil sortert () -funksjonen returnere en liste i sorteringsrekkefølge basert på lengden på elementene.

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)

Produksjon:

Deretter vil vi se en sortert () -funksjon med nøkkelparameter når brukeren definerer funksjonen, i koden nedenfor klikkes passerende returnSecond () -funksjon til nøkkelparameter. ReturnSecond () -funksjonen er brukeren som definerer funksjonen, som nettopp returnerer det andre elementet, så sortert () -funksjonen returnerer en ny sortert liste i sorteringsrekkefølge basert på det andre elementet i tupelen. Hvis vi vil sortere på basis av det første elementet, rediger du funksjonen returnSecond () for å returnere det første elementet 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)

Produksjon:

Vi endrer koden ovenfor ved å bruke lambda-funksjonen (lambda-funksjonen er anonym funksjon, simulerer det samme som inline-funksjoner 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)

Produksjon:

Ovenstående kode endrer seg for å sortere basert på det første elementet ved å endre lambda-funksjonen.

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)

Produksjon:

La oss nå lage en liste over studentdetaljer og lagre hver studentinformasjon tupelen vi vil bruke. Én tupel inneholder en studentrekord, det første elementet i tupelen er navnet på studenten, det andre elementet er rullens nr. Av eleven og det tredje elementet er studentenes totale karakter. Deretter ønsker vi å lagre studentdetaljene i rekkefølge etter deres karakterer, så la oss starte kodingen.

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

Produksjon:

Konklusjon

Sortering () og sortert () -funksjonen brukes til å sortere samlingen. List.sort () redigerer til selve listen, mens den sorterte (listen) ikke redigerer til listen returnerer den nye sorterte listen. Sortering () -funksjonen gjelder bare for listen, mens den sorterte () -funksjonen kan gjelde for alle samlinger som liste, tuple, ordbok og alle.

Anbefalte artikler

Dette er en guide til sortering i Python. Her diskuterer vi de to innebygde sorteringsfunksjonene i python med programmet og output. Du kan også se på følgende artikkel for å lære mer -

  1. Python-variabler
  2. Destruktør i Python
  3. Python-databasetilkobling
  4. Python Editors
  5. PL / SQL-datatyper
  6. Ulike typer SQL-data med eksempler