Introduktion till sortering i Python

Vid någon tidpunkt i en applikation eller ett program måste vi sortera data i någon ordning, till exempel sortera anställda baserat på lön eller baserat på någon rang, sortera produktlistan baserat på produktpriset och så allt. I så fall måste utvecklaren implementera sorteringen i ett program, om utvecklaren använder python-programmeringsspråket kommer det att vara mycket enkelt att implementera. Python tillhandahåller inbyggda funktioner för att utföra grundläggande sortering eller anpassa sorteringsfunktioner på granulär nivå. Det finns 2 inbyggda funktioner i python att sortera.

Låt oss se hur du sorterar olika typer av data, sorterar data i anpassad ordning.

  • Vi måste utföra sortering på insamling av element eller grupper av element så att vi får en samling element i någon sorteringsordning. För sortering måste jämförelsen utföras mellan varje element i samlingen och jämförelse är endast möjlig och endast om de är av samma datatyp, så sortering kan vi utföra på insamling om de är samma datatypelement, till exempel heltal till heltal kan jämföra men inte heltal till sträng.
  • Nästa punkt är att skapa insamling av element, i python har vi listor, tupel, uppsättning och ordbokdatastrukturer som används för att lagra insamlingen av element. Så för att utföra sortering måste man ha en grundläggande förståelse för avhandlingar. Vi kommer att använda Python 3, syntaxen kan vara något annorlunda om du använder Python 2 och exempelutgång också.

Sorteringsfunktion i python

Det finns två inbyggda sorteringsfunktioner i python.

  • sortera()
  • sorterad()

Två sorteringsfunktioner nämns nedan:

1. sortera ()

Metoden sortering () sorterar elementen i en given samlingslista i en specifik ordning antingen stigande eller fallande.

Syntaxen för sorteringsfunktionen () är:

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

  • nyckel - Parameterns tangentuppgiftfunktion som används för sorteringsjämförelsen.
  • Omvänd - Parametern omvänd om sant, den sorterade listan är omvänd vilket betyder att sorteras i fallande ordning.

För att få beskrivningen av sorteringsfunktionen använder du hjälpkommandot enligt nedan.

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

Låt oss starta sorteringsfunktionen med exemplet.

Exempel 1:

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

Produktion:

Som i ovanstående kod skapas den osorterade listan (20, 50, 10, 40, 60) och tillämpar vidare sorteringsfunktionen, som sorterar listan i stigande ordning och inte returnerar någonting.

Därefter försöker vi sortera () -funktionen på decimal- eller floatdatatyp.

Exempel 2:

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

Produktion:

Därefter försöker vi sortera () -funktionen på char-datatypen.

Exempel 3:

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

Produktion:

Därefter försöker vi sortera () -funktionen på String-datatyp.

Exempel 4:

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

Produktion:

Därefter försöker vi sortera () -funktionen på olika datatypelement.

Exempel 5:

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

Produktion:

Därefter försöker vi sortera () -funktionen med bakåtargument.

Exempel 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 ovanstående kod skapas den osorterade listan (26.7, 34.23, 67.45, 89.34, 23.18) och längre tillämpar funktionen sortering () med omvänd = Sann, standardvärdet för omvänd är falskt, som sorterar listan i omvänd ordning eller fallande ordning.

Därefter försöker vi sortera () -funktionen med nyckelargument:

Nyckelparametern är den viktigaste komponenten i sorteringsfunktionen. Till detta argument överförs en funktion som kommer att användas på varje element i listan som sorteras för att ordna i den resulterande ordningen.

Låt oss börja exemplet, anta att vi har en lista med strängar och vi vill sortera en lista baserad på längden på strängarna i listan i stigande ordning (kortaste till längsta längd). Den inbyggda len () -funktionen i python returnerar längden på strängen, så len () kan användas för att klara nyckelargumentet.

Exempel 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 resulterande ordningen på list.sort (key = len) är en lista med sorteringssträngar i kortaste till längsta ordning. Medan list.sort (nyckel = len, omvänd = sant) som resulterar i en ordning på listan är längst till kortaste längd. Längden på varje element i listan bestäms av len () -funktionen.

Därefter försöker vi sortera () -funktionen med tangenten som passerar användaren och definiera funktionen:

Exempel 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 resulterande ordningen för list.sort (key = sort_onSecondChar)) är en lista med sorteringssträngar i stigningsordning baserat på det andra tecknet. Medan en lista.sort (key = sort_onSecondChar, reverse = True) resulterande ordningsföljd av listan faller baserat på andra tecken. Sorteringen av varje element i listan bestäms av användaren för att definiera funktionen sort_onSecondChar ().

2. sorterad ()

Den sorterade () -funktionen anropar i listan eller samlingen, den returnerar den nya sorterade listan. Den sorterade () -funktionen redigerar eller ändrar inte listan som den heter, men returnerar den sorterade listan som ett resultat av den.

Syntaxen för sorterad () -funktion:

sorted(iterable, key, reverse)

  • iterable - lista, tuple, string, set, frysta uppsättning, ordbok vilken samling eller iterable som behöver sorteras.
  • omvänd-omvänd specificera om den sorterade listan som ska vändas eller inte (det är fallande ordning). Det är
  • tangent– specificera funktionen som en tangent för att jämföra för sorteringen. Det är valfritt .

För att få beskrivningen av sorteringsfunktionen använder du hjälpkommandot enligt nedan.

Tänk på exemplen:

Exempel 9:

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

Produktion:

Observera att vi också kan använda list.sort () -funktionen för att utföra samma, men skillnaderna är, funktionen sortering () ändrar själva listan på plats och returnerar Ingen som utgångsresultat. En annan skillnad i list.sort () -funktionen är att den kan tillämpas på den enda listan, medan den sorterade () kan gälla för alla samlingar eller iterable.

Låt oss se exemplet där vi skapar tupeln (vi vet att för att skapa tuple använder (och) hängslen och tuplefunktioner om det är beställt, det lagrar duplikat, kan inte tillämpas på index, och det är oföränderligt) och tillämpa sorterad () -funktion .

Exempel 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:

Om sorteringsfunktionen () som tillämpas på tupeln ger den "AttributeError: 'tuple' -objektet har inget attribut" sort "-fel.

Så sortering () -funktionen kan inte tillämpas på tupeln, kan inte ens gälla för andra samlingar utom listan.

Därefter ser vi några exempel med olika datatyper:

Exempel 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:

Därefter försöker vi sorterad () -funktion med omvänd parameter:

Låt oss ta hänsyn till exemplet:

Exempel 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:

Därefter kommer vi att se sorterad () -funktion med nyckelparametern, i koden nedan skickas passerar len () -funktionen till nyckelparametern, så då sorteras () -funktionen kommer att returnera en lista i sorteringsordning baserat på elementets längd.

Exempel 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:

Därefter kommer vi att se en sorterad () -funktion med nyckelparameter när användaren definierar funktionen, i koden nedan skickas passerar returnSecond () -funktion till nyckelparameter. Funktionen returnSecond () är användaren som definierar funktionen, som bara returnerar det andra elementet, så den sorterade () -funktionen returnerar en ny sorterad lista i sorteringsordning baserat på det andra elementet i tupeln. Om vi ​​vill sortera på basen för det första elementet, redigera funktionen returnSecond () för att returnera det första elementet som (L (0)).

Exempel 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 ändrar ovanstående kod genom att använda lambda-funktionen (lambda-funktionen är anonym funktion, simulerar samma som inline-funktioner för C och C ++).

Exempel 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:

Ovanstående kod ändrar att sortera baserat på det första elementet genom att ändra lambda-funktionen.

Exempel 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:

Låt oss nu skapa en lista med studentinformation och lagra varje studentinformation den tupeln vi kommer att använda. En tupel innehåller en studentrekord, det första elementet i tupeln är studentens namn, det andra elementet är studentens rullnummer och det tredje elementet är studentens totala poäng. Därefter vill vi lagra studentinformationen i deras ordning, så låt oss börja kodningen.

Exempel 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:

Slutsats

Funktionen sortering () och sorterad () använder för att sortera samlingen. List.sort () redigerar till själva listan, medan den sorterade (listan) som inte redigerar till listan returnerar den nya sorterade listan. Funktionen sortering () gäller endast listan medan funktionen sorterad () kan tillämpas på all samling som lista, tupel, ordbok och allt.

Rekommenderade artiklar

Detta är en guide till sortering i Python. Här diskuterar vi de två inbyggda sorteringsfunktionerna i python med programmet och utgången. Du kan också titta på följande artikel för att lära dig mer -

  1. Pythonvariabler
  2. Destruktor i Python
  3. Python-databasanslutning
  4. Python Editors
  5. PL / SQL-datatyper
  6. Olika typer av SQL-data med exempel

Kategori: