Uvod v razvrščanje v Pythonu

Na neki točki v aplikaciji ali programu moramo podatke razvrstiti po določenem vrstnem redu, na primer razvrstiti zaposlene na podlagi plače ali na podlagi nekega ranga, razvrstiti seznam izdelkov glede na ceno izdelka in tako naprej. V tem primeru mora razvijalec izvajati razvrščanje v programu, če razvijalec uporablja programski jezik python, potem ga bo zelo enostavno izvesti. Python ponuja vgrajene funkcije za izvajanje osnovnih funkcij razvrščanja ali prilagajanja funkcij sortiranja na ravni ravni. V python-u sta razvrščeni dve vgrajeni funkciji.

Oglejmo si, kako razvrščati različne vrste podatkov, razvrstiti podatke po prilagojenem vrstnem redu.

  • Izvesti moramo razvrščanje na zbirki elementov ali skupin elementov, tako da bomo dobili zbirko elementov v nekem vrstnem redu razvrščanja. Za razvrščanje je primerjavo treba izvesti med posameznimi elementi zbirke in primerjava je mogoča samo in le, če so iste vrste podatkov, zato lahko razvrščanje izvajamo pri zbiranju, če gre za iste elemente podatkovnih tipov, na primer celo število do celih števil lahko primerja, vendar ne celo število do niza.
  • Naslednja točka je ustvariti zbirko elementov, v pythonu imamo strukture struktur seznamov, urejanja, nastavitev in slovarja, ki so bile uporabljene za shranjevanje zbirke elementov. Za izvedbo razvrščanja mora biti osnovno razumevanje tez. Uporabili bomo Python 3, skladnja se lahko nekoliko razlikuje, če uporabljate tudi Python 2 in primer izhoda.

Funkcija razvrščanja v pythonu

V pythonu sta dve vgrajeni funkciji razvrščanja.

  • sortirati ()
  • razvrščeno ()

Spodaj sta navedeni dve razvrstitveni funkciji:

1. sortiraj ()

Metoda sort () razvrsti elemente določenega seznama zbirk v določenem vrstnem redu po naraščajočem ali padajočem.

Sintaksa funkcije sort () je:

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

  • tipka - Tipka parametrov določi funkcijo, ki se uporablja za primerjavo razvrščanja.
  • Reverse - Parameter reverse, če je res, je razvrščen seznam obrnjen, kar pomeni razvrščeno v padajočem vrstnem redu.

Če želite dobiti opis funkcije razvrščanja, uporabite ukaz za pomoč, kot je navedeno spodaj.

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

Začnimo s funkcijo razvrščanja s primerom.

1. primer:

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

Izhod:

Kot v zgornji kodi se tudi nesortirani seznam ustvari (20, 50, 10, 40, 60) in nadalje uporabi funkcijo sort (), ki seznam razvrsti po naraščajočem vrstnem redu in ne vrne ničesar.

Nato poskusimo sortirati () funkcijo na decimalnih ali plavajočih vrstah podatkov.

Primer # 2:

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

Izhod:

Nato preizkusimo funkcijo sort () na vrsti podatkov char.

3. primer:

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

Izhod:

Nato poskusimo sortirati () funkcijo na vrsti podatkov String.

Primer # 4:

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

Izhod:

Nato poskusimo sortirati () funkcijo na različnih elementih podatkovnih tipov.

Primer # 5:

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

Izhod:

Nato poskusimo sortirati () funkcijo z argumenti revers.

Primer # 6:

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

Izhod:

V zgornji kodi se ustvari nesortirani seznam (26.7, 34.23, 67.45, 89.34, 23.18) in dlje uporabite funkcijo sort () z obratno = True, privzeta vrednost reverse je False, ki seznam razvrsti v obratnem vrstnem redu oz. padajoči vrstni red.

Nato bomo preizkusili funkcijo sort () s ključnimi argumenti:

Ključni parameter je najpomembnejša komponenta funkcije sort (). Temu argumentu je podana funkcija, ki bo uporabljena za vsak element na seznamu, ki je razvrščen, da se razporedi v dobljenem vrstnem redu.

Začnimo s primerom, predpostavimo, da imamo seznam nizov in želimo seznam razvrstiti glede na dolžino strun na seznamu v naraščajočem vrstnem redu (najkrajša do najdaljša dolžina). Vgrajena funkcija len () v pythonu vrne dolžino niza, zato lahko len () uporabimo za prenos ključnega argumenta.

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

Izhod:

Nastali vrstni red list.sort (key = len) je seznam nizov razvrščanja po vrstnem redu od najkrajših do najdaljših. Ker je list.sort (key = len, reverse = True), pri čemer je vrstni red seznama najdaljši do najkrajše dolžine. Dolžina vsakega elementa na seznamu je določena s funkcijo len ().

Nato poskusimo funkcijo sort () s tipko mimo uporabnika določiti funkcijo:

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

Izhod:

Nastali vrstni red list.sort (key = sort_onSecondChar)) je seznam nizov razvrščanja po vrstnem redu naraščanja glede na drugi znak. Ker se seznam.sort (key = sort_onSecondChar, reverse = True) rezultira po vrstnem redu seznama glede na drugi znak. Razvrstitev vsakega elementa na seznamu določi uporabnik, da določi funkcijo sort_onSecondChar ().

2. razvrščeno ()

Razvrščeni () pokliče funkcijo na seznam ali zbirko, vrne nov razvrščen seznam. Funkcija sortiranja () ne ureja in ne spreminja seznama, na katerega se imenuje, ampak vrne razvrščen seznam kot rezultat njega.

Sintaksa sortirane () funkcije:

sorted(iterable, key, reverse)

  • iterable - seznam, tuple, string, set, zamrznjen niz, slovar katere koli zbirke ali iterable, ki jih je treba razvrstiti.
  • vzvratno nazaj obrnite, ali naj bo razvrščen seznam obrnjen ali ne (to je padajoči vrstni red). je
  • tipka - določite funkcijo kot tipko za primerjavo za razvrstitev. Neobvezna .

Če želite dobiti opis funkcije razvrščanja, uporabite ukaz za pomoč, kot je navedeno spodaj.

Upoštevajte primere:

Primer # 9:

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

Izhod:

Upoštevajte, da lahko za isto izvedbo uporabimo tudi funkcijo list.sort (), vendar so razlike v tem, da funkcija sort () sam spremeni seznam na mestu in vrne None kot izhodni rezultat. Druga razlika funkcije list.sort () je, da se lahko nanaša na edini seznam, medtem ko se sortirano () lahko uporablja za katero koli zbirko ali za prenos.

Poglejmo primer, kjer ustvarjamo tuple (vemo, da za ustvarjanje tuple use (in) naramnic in funkcij tuple, če je naročeno, shranjuje podvojenike, ne more uporabiti za indeks in je nespremenljiv) in uporabimo sorted () funkcijo .

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

Izhod:

Če funkcija sortiranja (), uporabljena za taple, poda napako »AttributeError: 'tuple' predmet nima atributa 'sort' '.

Torej funkcija sort () ne more veljati za nabor, niti ne more veljati za druge zbirke, razen za seznam.

Nato bomo videli nekaj primerov z različnimi vrstami podatkov:

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

Izhod:

Nato bomo preizkusili funkcijo sorted () z obratnim parametrom:

Poglejmo primer:

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

Izhod:

Nato bomo videli sortirano () funkcijo s ključnim parametrom, spodaj pa koda zaskočila prehajanje funkcije len () na ključni parameter, tako da bo funkcija sorted () vrnila seznam v vrstnem redu razvrščanja glede na dolžino elementov.

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

Izhod:

Nato bomo videli sortirano () funkcijo s ključnim parametrom, ko uporabnik definira funkcijo, spodaj pa koda preskoči mimo funkcije returnSecond () v ključni parameter. Funkcija returnSecond () je uporabnik določiti funkcijo, ki šele vrne drugi element, zato funkcija sorted () vrne nov razvrščen seznam v vrstnem redu razvrščanja na podlagi drugega elementa ubora. Če želimo razvrstiti na dnu prvega elementa, uredimo funkcijo returnSecond (), da prvi element vrnemo kot (L (0)).

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

Izhod:

Zgornjo kodo spremenimo s pomočjo funkcije lambda (funkcija lambda je anonimna, simulira enako kot vhodne funkcije C in C ++).

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

Izhod:

Zgornja koda se spremeni glede na prvi element s spremembo funkcije lambda.

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

Izhod:

Zdaj ustvarimo seznam podrobnosti študenta in shranimo podrobnosti o vsakem učencu, ki jih bomo uporabili. En krog vsebuje en zapis učencev, prvi element v kompletu je ime študenta, drugi element je no učenec in tretji element je skupna ocena študenta. Nato želimo podrobnosti o učencu shraniti po vrstnem redu njihovih oznak, zato začnimo s kodiranjem.

Primer št. 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))

Izhod:

Zaključek

Funkcija sort () in sorted () uporabljata za razvrščanje zbirke. List.sort () uredi na sam seznam, medtem ko razvrščeni (seznam), ki ni urejen na seznam, vrne nov razvrščen seznam. Funkcija sort () velja samo za seznam, medtem ko se funkcija sorted () lahko uporablja za vse zbirke, kot so seznam, tuple, slovar in vse.

Priporočeni članki

To je vodnik za razvrščanje v Pythonu. Tu obravnavamo dve vgrajeni funkciji razvrščanja v pythonu s programom in izhodom. Če želite izvedeti več, si oglejte tudi naslednji članek -

  1. Spremenljivke Python
  2. Destruktor v Pythonu
  3. Povezava z bazo Python
  4. Uredniki Pythona
  5. Vrste PL / SQL podatkov
  6. Različne vrste podatkov SQL s primeri