Uvod u razvrstavanje u Pythonu

U nekom trenutku aplikacije ili programa trebamo sortirati podatke nekim redoslijedom, na primjer, sortirati zaposlenike na temelju plaće ili na temelju nekog ranga, poredati popis proizvoda na temelju cijene proizvoda i tako sve. U tom slučaju, programer mora implementirati razvrstavanje u program, ako programer koristi programski jezik python, bit će ga vrlo lako implementirati. Python nudi ugrađene funkcije za izvršavanje osnovnih značajki sortiranja ili prilagođavanja značajki sortiranja na razini preciznosti. Postoje dvije ugrađene funkcije u pythonu za sortiranje.

Pogledajmo kako sortirati različite vrste podataka, sortiramo podatke po prilagođenom redoslijedu.

  • Moramo izvršiti razvrstavanje na skupu elemenata ili skupina elemenata, tako da ćemo dobiti kolekciju elemenata u nekom redoslijedu sortiranja. Za razvrstavanje, usporedbu treba obaviti između svakog elementa kolekcije, a usporedba je moguća samo i samo ako su iste vrste podataka, tako da sortiranje možemo izvesti na prikupljanju ako su isti elementi podataka, na primjer, cijeli broj do cijeli broj može usporediti, ali ne i cijeli broj.
  • Sljedeća je točka stvoriti kolekciju elemenata, u pythonu imamo strukture podataka, popisa, podešavanja i rječnika koje su služile za pohranu zbirke elemenata. Dakle, za sortiranje treba imati osnovno razumijevanje teza. Koristit ćemo Python 3, sintaksa će se možda malo razlikovati ako koristite i Python 2 i primjer izlaza.

Funkcija sortiranja u pythonu

U python-u postoje dvije ugrađene funkcije sortiranja.

  • sortirati()
  • sortirati ()

Dvije su funkcije sortiranja navedene u nastavku:

1. sortirati ()

Metoda sort () sortira elemente određenog popisa kolekcija u određenom redoslijedu, bilo prema Uzlaznom ili Silaznom.

Sintaksa funkcije sort () je:

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

  • tipka - Tipka parametra određuje funkciju koja se koristi za usporedbu sortiranja.
  • Obrnuto - Povrat parametra ako je istinit, sortirani popis se preokreće što znači sortirano u silaznom redoslijedu.

Da biste dobili opis funkcije sortiranja, koristite naredbu pomoći kao što je dano u nastavku.

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

Počnimo funkciju sortiranja s primjerom.

Primjer 1:

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

Izlaz:

Kao i u gornjem kôdu, nesortirani popis kreira se (20, 50, 10, 40, 60) i dalje primjenjuje funkciju sort (), koja popis sortira uzlaznim redoslijedom i ne vraća ništa.

Zatim pokušavamo sortirati () funkciju na decimalnom ili plutajućem tipu podataka.

Primjer br. 2:

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

Izlaz:

Zatim pokušavamo sortirati () funkciju na vrsti podataka char.

Primjer 3:

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

Izlaz:

Zatim pokušavamo sortirati () funkciju na vrsti podataka String.

Primjer br. 4:

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

Izlaz:

Zatim pokušavamo sortirati () funkciju na različitim elementima tipova podataka.

Primjer br. 5:

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

Izlaz:

Zatim pokušavamo sortirati () funkciju s revers argumentima.

Primjer 6:

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

Izlaz:

U gornjem kôdu stvara se neortorirani popis (26.7, 34.23, 67.45, 89.34, 23.18) i dalje primjenjuju funkciju sort () s obrnutim = True, zadana vrijednost reverse je False, koji popis sortiraju obrnutim redoslijedom ili silazni poredak.

Zatim ćemo pokušati sortirati () funkciju s ključnim argumentima:

Ključni parametar najvažnija je komponenta funkcije sort (). Na ovaj argument je poslana funkcija koja će se upotrijebiti za svaki element na popisu koji je sortiran kako bi se poredio u rezultirajućem redoslijedu.

Počnimo s primjerom, pretpostavimo da imamo popis stringova i želimo sortirati popis na temelju duljine žica na popisu u uzlaznom redoslijedu (najkraće do najduže duljine). Ugrađena funkcija len () u pythonu vraća duljinu niza, pa se len () može koristiti za prosljeđivanje ključnog argumenta.

Primjer br. 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)

Izlaz:

Rezultirajući redoslijed list.sort (key = len) je popis nizova sortiranja prema redoslijedu od najkraćeg do najdužeg. Dok je list.sort (key = len, reverse = True) što rezultira time da je redoslijed popisa najduži do najkraće duljine. Duljina svakog elementa na popisu određuje se funkcijom len ().

Zatim pokušavamo funkciju sort () s ključem koji prolazi korisnik definirati funkciju:

Primjer br. 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)

Izlaz:

Rezultirajući redoslijed list.sort (key = sort_onSecondChar)) je popis nizova sortiranja redoslijedom uspona na temelju drugog znaka. Dok je list.sort (tipka = sort_onSecondChar, obrnuto = True) rezultirajući redoslijed popisa pada sila prema drugom znaku. Poredavanje svakog elementa na popisu korisnik određuje funkciju sort_onSecondChar ().

2. sortirano ()

Poredani () funkcija poziva na popis ili zbirku, vraća novi sortirani popis. Sortirana () funkcija ne uređuje ili ne mijenja popis na koji se zove, već vraća sortirani popis kao rezultat njega.

Sintaksa sortirane () funkcije:

sorted(iterable, key, reverse)

  • iterable - popis, tuple, string, set, zamrznuti skup, rječnik bilo koje zbirke ili iterable koji je potrebno sortirati.
  • unazad unatrag odredite hoće li sortirani popis biti preokrenut ili ne (to je silazni poredak). to je
  • tipka - odredite funkciju kao ključ za usporedbu za vrstu. To nije obavezno .

Da biste dobili opis funkcije sortiranja, koristite naredbu pomoći kao što je dano u nastavku.

Razmotrimo primjere:

Primjer 9:

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

Izlaz:

Imajte na umu da i mi možemo koristiti funkciju list.sort () za izvršavanje iste, ali razlike su u tome što funkcija sort () mijenja sam popis na mjestu i vraća None kao izlazni rezultat. Još jedna razlika funkcije list.sort () je ta što se ona može primijeniti na jedini popis, dok se sorted () može primijeniti na bilo koju zbirku ili iterable.

Pogledajmo primjer gdje stvaramo tuple (znamo da za kreiranje tuple upotrebljavamo (i) zagrade i značajke podešavanja kako je to naređeno, pohranjuju duplikate, ne mogu se primijeniti na indeks, a on je nepromjenjiv) i primijenimo sorted () funkciju,

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

Izlaz:

Ako funkcija sort () primijenjena na tuple, ona daje pogrešku "AttributeError: 'tuple" objekt nema atribut "sortiraj" ".

Dakle, funkcija sort () se ne može primijeniti na tuple, pa čak ni na druge kolekcije, osim na popisu.

Zatim ćemo vidjeti nekoliko primjera različitih tipova podataka:

Primjer br. 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)

Izlaz:

Zatim ćemo pokušati sortirati () funkciju s obrnutim parametrom:

Razmotrimo primjer:

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

Izlaz:

Dalje ćemo vidjeti sorted () funkciju s ključnim parametrom, u nastavku kôd je ubacio prolaznu funkciju len () na ključni parametar, pa će tada sorted () funkcija vratiti popis u redoslijedu sortiranja na temelju duljine elemenata.

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

Izlaz:

Zatim ćemo vidjeti sortiranu () funkciju s ključnim parametrom kao što korisnik definira funkciju, u nastavku kôd puknuo prosljeđujući funkciju returnSecond () ključu. Funkcija returnSecond () je funkcija definiranja korisnika, koja upravo vraća drugi element, tako da sorted () funkcija vraća novi poredani popis u redoslijedu sortiranja na temelju drugog elementa sabora. Ako želimo sortirati na bazi prvog elementa, uredimo funkciju returnSecond () da bi prvi element vratili kao (L (0)).

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

Izlaz:

Gornji kôd mijenjamo pomoću lambda funkcije (lambda funkcija je anonimna funkcija, simulira isto kao inline funkcije C i C ++).

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

Izlaz:

Gore navedeni kôd mijenja se na osnovi prvog elementa, mijenjajući lambda funkciju.

Primjer br. 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)

Izlaz:

Sada napravimo popis detalja o studentu i pohranimo pojedinosti svakog učenika u tuplet koji ćemo koristiti. Jedan tuple sadrži jedan učenički zapis, prvi element u tupleu je ime učenika, drugi element je roll no učenika, a treći element je ukupna ocjena učenika. Zatim želimo pohraniti detalje učenika u redoslijed njihovih oznaka, pa započimo s kodiranjem.

Primjer br. 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))

Izlaz:

Zaključak

Funkcija sort () i sorted () koriste za sortiranje kolekcije. List.sort () uređuje na samom popisu, dok poredani (popis) koji se ne uređuje na popis vraća novi sortirani popis. Funkcija sort () odnosi se samo na popis dok se sorted () funkcija može primijeniti na sve zbirke poput popisa, tuple, rječnika i svih.

Preporučeni članci

Ovo je vodič za sortiranje u Pythonu. Ovdje ćemo raspravljati o dvije ugrađene funkcije sortiranja u pythonu s programom i izlazom. Možete pogledati i sljedeći članak da biste saznali više -

  1. Python varijable
  2. Destruktor u Pythonu
  3. Spajanje baze podataka Python-a
  4. Urednici Pythona
  5. PL / SQL tipovi podataka
  6. Različite vrste SQL podataka s primjerima

Kategorija: