Introducere în Sortare în Python

La un moment dat într-o aplicație sau program, trebuie să sortăm datele într-o anumită ordine, de exemplu, să sortăm angajații în funcție de salariu sau pe baza unui anumit rang, să sortăm lista de produse în funcție de prețul produsului și tot așa. În acest caz, dezvoltatorul trebuie să implementeze sortarea într-un program, dacă dezvoltatorul utilizează limbajul de programare python, atunci va fi foarte ușor de implementat. Python oferă funcții încorporate pentru a efectua sortarea de bază sau personaliza caracteristici de sortare la nivel granular. Pentru a sorta 2 funcții încorporate în piton.

Să vedem cum să sortați diferite tipuri de date, să sortați datele în ordinea personalizării.

  • Trebuie să efectuăm sortarea pe colecția de elemente sau grupuri de elemente, astfel încât să obținem o colecție de elemente într-o anumită ordine de sortare. Pentru sortare, comparația trebuie efectuată între fiecare element al colecției, iar comparația este posibilă și numai dacă sunt aceleași tipuri de date, astfel încât sortarea le putem efectua pe colecție dacă sunt aceleași elemente de tip de date, de exemplu, întreg pentru întreg. pot compara, dar nu întregi cu șiruri.
  • Următorul punct este să creăm colecția de elemente, în python, avem liste de date, tuple, set și dicționare structuri de date care au folosit pentru a stoca colecția de elemente. Deci, pentru a efectua sortul trebuie să aveți o înțelegere de bază a tezelor. Vom folosi Python 3, sintaxa ar putea fi ușor diferită dacă utilizați Python 2 și exemplu de ieșire.

Funcția de sortare în piton

În piton există două funcții de sortare încorporate.

  • fel()
  • sortat ()

Mai jos sunt menționate două funcții de sortare:

1. sortare ()

Metoda sort () sortează elementele unei liste de colecții date într-o ordine specifică, fie Ascendent, fie Descrescător.

Sintaxa funcției sort () este:

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

  • cheie - Parametrul tastei specifică funcția care se folosește pentru comparația de sortare.
  • Reverse - Parametrul invers dacă este adevărat, lista sortată este inversată ceea ce înseamnă sortat în ordine descrescătoare.

Pentru a obține descrierea funcției de sortare, folosiți comanda de ajutor, așa cum este dată mai jos.

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

Să începem funcția de sortare cu exemplul.

Exemplul # 1:

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

ieşire:

Ca și în codul de mai sus, lista nesortată este creată (20, 50, 10, 40, 60) și aplică în continuare funcția sort (), care sortează lista în ordine crescătoare și nu returnează nimic.

În continuare, încercăm funcția sortare () pe tipuri de date zecimale sau float.

Exemplul # 2:

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

ieşire:

În continuare, încercăm funcția sortare () pe tipul de date char.

Exemplul # 3:

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

ieşire:

În continuare, încercăm funcția sortare () pe tipul de date String.

Exemplul # 4:

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

ieşire:

În continuare, încercăm funcția sortare () pe diferite elemente de tipuri de date.

Exemplul # 5:

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

ieşire:

În continuare, încercăm funcția sort () cu argumente de inversare.

Exemplul # 6:

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

ieşire:

În codul de mai sus, lista nesortată este creată (26.7, 34.23, 67.45, 89.34, 23.18) și aplică mai departe funcția sort () cu reverse = True, valoarea implicită a inversului este False, care sortează lista în ordine inversă sau ordine descrescatoare.

În continuare, vom încerca funcția sortare () cu argumente cheie:

Parametrul cheie este cea mai importantă componentă a funcției sort (). La acest argument, se trece o funcție, care va fi utilizată pe fiecare element din listă care este sortat pentru a se aranja în ordinea rezultată.

Să începem exemplul, să presupunem că avem o listă de șiruri și dorim să sortăm o listă în funcție de lungimea șirurilor din listă în ordine crescătoare (cea mai scurtă până la cea mai lungă). Funcția Len () încorporată în python returnează lungimea șirului, astfel încât len ​​() poate fi utilizat pentru a trece argumentul cheie.

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

ieşire:

Ordinea rezultată a list.sort (key = len) este o listă de șiruri de sortare în ordinea celor mai scurte până la cele mai lungi. Întrucât list.sort (key = len, reverse = True), rezultând o ordine a listei este cea mai lungă până la cea mai scurtă lungime. Lungimea fiecărui element din listă este determinată de funcția len ().

În continuare, încercăm funcția sortare () cu cheia care trece utilizatorul să definească funcția:

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

ieşire:

Ordinea rezultată a list.sort (key = sort_onSecondChar)) este o listă de șiruri de sortare în ordinea ascendentului bazată pe al doilea caracter. Întrucât un list.sort (key = sort_onSecondChar, reverse = True), ordinea rezultatelor listei este descendentă pe baza celui de-al doilea caracter. Sortarea fiecărui element din listă este determinată de utilizator pentru a defini funcția sort_onSecondChar ().

2. sortat ()

Apelarea funcției sortate () din listă sau colecție, returnează noua listă sortată. Funcția sortată () nu editează și nu modifică lista la care este apelată, dar returnează lista sortată ca urmare a acesteia.

Sintaxa funcției sortate ():

sorted(iterable, key, reverse)

  • iterable - listă, tuple, șir, set, set înghețat, dicționar orice colecție sau iterable care trebuie să fie sortate.
  • reverse-reverse specifică dacă lista sortată trebuie inversată sau nu (adică ordine descendentă). Este
  • cheie - specificați funcția ca o cheie pentru a compara pentru sort. Este opțional .

Pentru a obține descrierea funcției de sortare, folosiți comanda de ajutor, așa cum este dată mai jos.

Ia în considerare exemplele:

Exemplul # 9:

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

ieşire:

Rețineți că, de asemenea, putem folosi funcția list.sort () pentru a efectua aceeași, dar diferențele sunt, funcția sort () modifică lista în loc și ea întoarce Niciunul ca rezultat de ieșire. O altă diferență a funcției list.sort () este aceea că se poate aplica la singura listă, în timp ce sortata () se poate aplica oricărei colecții sau a acesteia.

Să vedem exemplul în care creăm tuple (știm că pentru a crea tuple folosiți (și) bretele și caracteristicile tuple, este ordonat, stochează duplicatele, nu se poate aplica la index și este imuabil) și aplicăm funcția sortat () .

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

ieşire:

Dacă funcția sort () aplicată pe tuple, aceasta dă „AttributeError: obiectul„ tuple ”nu are nicio eroare de„ sortare ”a atributului.

Deci funcția sort () nu se poate aplica la tuple, nici măcar nu se poate aplica altor colecții, cu excepția listei.

În continuare, vom vedea câteva exemple cu diferite tipuri de date:

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

ieşire:

În continuare, vom încerca funcția sortată () cu parametrul invers:

Să luăm în considerare exemplul:

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

ieşire:

În continuare, vom vedea funcția sortată () cu parametrul cheie, în codul de mai jos, funcția len () trecând la parametrul cheie, astfel funcția sortată () va returna o listă în ordinea sortării în funcție de lungimea elementelor.

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

ieşire:

În continuare, vom vedea o funcție sortată () cu parametrul cheie, în timp ce utilizatorul definește funcția, în codul de mai jos s-a declanșat trecerea funcției ReturnSecond () la parametrul cheie. Funcția returnSecunda () este definirea de către utilizator a funcției, care întoarce doar cel de-al doilea element, astfel încât funcția sortată () returnează o nouă listă sortată în ordinea de sortare bazată pe al doilea element al tuplei. Dacă dorim să sortăm pe baza primului element, atunci editați funcția returnSecond () pentru a returna primul element ca (L (0)).

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

ieşire:

Modificăm codul de mai sus folosind funcția lambda (funcția lambda este o funcție anonimă, simulează la fel ca funcțiile inline ale lui C și C ++).

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

ieşire:

Codul de mai sus modifică sortarea pe baza primului element prin modificarea funcției lambda.

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

ieşire:

Acum să creăm o listă cu detaliile studenților și să stocăm detaliile fiecărui student pe care le vom folosi. Un tuple conține o înregistrare a elevului, primul element din tuple este numele elevului, al doilea element este numărul de elevi al elevului, iar cel de-al treilea element reprezintă notele totale ale elevului. În continuare, dorim să stocăm detaliile studentului în ordinea notelor lor, deci să începem codificarea.

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

ieşire:

Concluzie

Funcția sortare () și sortare () folosesc pentru sortarea colecției. List.sort () editează în listă în sine, în timp ce lista (sortată) care nu este modificată în listă returnează noua listă sortată. Funcția sort () se aplică numai listei, în timp ce funcția sortată () se poate aplica tuturor colecțiilor precum listă, tuple, dicționar și toate.

Articole recomandate

Acesta este un ghid pentru Sortarea în Python. Aici discutăm cele două funcții de sortare încorporate în python cu programul și ieșirea. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Variabile Python
  2. Distrugător în Python
  3. Conexiune bază de date Python
  4. Python Editors
  5. Tipuri de date PL / SQL
  6. Diferite tipuri de date SQL cu exemple