Úvod do triedenia v Pythone

V určitom okamihu v aplikácii alebo programe musíme zoradiť údaje v určitom poradí, napríklad zoradiť zamestnancov podľa mzdy alebo na základe určitého poradia, triediť zoznam produktov podľa ceny produktu a podobne. V takom prípade musí vývojár implementovať triedenie v programe, ak vývojár používa programovací jazyk python, implementácia bude veľmi jednoduchá. Python poskytuje vstavané funkcie na vykonávanie základného triedenia alebo prispôsobovanie triediacich funkcií na podrobnej úrovni. V Pythone sú usporiadané 2 vstavané funkcie.

Pozrime sa, ako zoradiť rôzne typy údajov, zoradiť údaje v prispôsobenom poradí.

  • Potrebujeme vykonať triedenie na kolekcii prvkov alebo skupín prvkov, aby sme dostali kolekciu prvkov v určitom poradí zoradenia. Na účely zoradenia je potrebné vykonať porovnanie medzi jednotlivými prvkami kolekcie a porovnanie je možné iba vtedy, ak ide o rovnaký typ údajov, takže triedenie môžeme vykonať pri zbere, ak ide o rovnaké prvky typu údajov, napríklad celé číslo na celé číslo. môže porovnávať, ale nie celé číslo, s reťazcom.
  • Ďalším bodom je vytvorenie kolekcie prvkov, v pythone máme zoznamy, n-tice, množiny a slovníkové dátové štruktúry, ktoré slúžili na ukladanie kolekcie prvkov. Aby bolo možné usporiadať, musí mať základné vedomosti o týchto prácach. Použijeme Python 3, syntax sa môže mierne líšiť, ak používate Python 2 a výstup z príkladu.

Funkcia triedenia v pythone

V pythone sú dve zabudované funkcie triedenia.

  • sort ()
  • triedený ()

Ďalej sú uvedené dve funkcie triedenia:

1. sort ()

Metóda sort () triedi prvky daného zoznamu kolekcií v konkrétnom poradí vzostupne alebo zostupne.

Syntax funkcie sort () je:

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

  • key - Parameter keyspecify function, ktorý sa používa na porovnanie zoradenia.
  • Reverse - ak je parameter true, ak je true, zoradený zoznam je obrátený, čo znamená, že je usporiadaný v zostupnom poradí.

Na získanie opisu funkcie zoradenia použite príkaz help, ako je uvedené nižšie.

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

Začnime funkciu triedenia s príkladom.

Príklad č. 1:

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

Výkon:

Rovnako ako vo vyššie uvedenom kóde sa vytvorí netriedený zoznam (20, 50, 10, 40, 60) a ďalej sa použije funkcia sort (), ktorá triedi zoznam vzostupne a nevracia nič.

Ďalej vyskúšame funkciu sort () na desatinný alebo floatový dátový typ.

Príklad č. 2:

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

Výkon:

Ďalej vyskúšame funkciu sort () na dátovom type char.

Príklad č. 3:

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

Výkon:

Ďalej vyskúšame funkciu sort () na dátovom type String.

Príklad č. 4:

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

Výkon:

Ďalej vyskúšame funkciu sort () na rôznych prvkoch typov údajov.

Príklad č. 5:

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

Výkon:

Ďalej vyskúšame funkciu sort () s argumentmi zvrátenia.

Príklad č. 6:

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

Výkon:

Vo vyššie uvedenom kóde sa vytvorí netriedený zoznam (26.7, 34.23, 67.45, 89.34, 23.18) a ďalej použije funkciu sort () s reverse = True, predvolená hodnota reverzu je False, ktorá triedi zoznam v opačnom poradí alebo zostupne.

Ďalej vyskúšame funkciu sort () s kľúčovými argumentmi:

Kľúčový parameter je najdôležitejšou súčasťou funkcie sort (). Do tohto argumentu sa odovzdá funkcia, ktorá sa použije na každý prvok v zozname, ktorý je usporiadaný, aby sa usporiadalo vo výslednom poradí.

Začnime príkladom, predpokladajme, že máme zoznam reťazcov a chceme usporiadať zoznam podľa dĺžky reťazcov v zozname vo vzostupnom poradí (najkratšia až najdlhšia). Vstavaná funkcia len () v pythone vracia dĺžku reťazca, takže len () sa dá použiť na odovzdanie argumentu kľúča.

Príklad č. 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)

Výkon:

Výsledné poradie list.sort (key = len) je zoznam zoradených reťazcov v poradí od najkratšej po najdlhšiu. Zatiaľ čo list.sort (key = len, reverse = True), ktorého poradie je v zozname, je najdlhšia až najkratšia. Dĺžka každého prvku v zozname je určená funkciou len ().

Ďalej vyskúšame funkciu sort (), pri ktorej kláves odovzdá používateľovi túto funkciu:

Príklad č. 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)

Výkon:

Výsledné poradie list.sort (key = sort_onSecondChar)) je zoznam zoradených reťazcov v poradí vzostupne podľa druhého znaku. Zatiaľ čo výsledný zoznam v zozname zostupne (key = sort_onSecondChar, reverse = True) klesá na základe druhého znaku. Triedenie každého prvku v zozname určuje užívateľ na definovanie funkcie sort_onSecondChar ().

2. zoradené ()

Volanie funkcie sort () v zozname alebo kolekcii vráti nový zoradený zoznam. Funkcia sort () neupravuje ani nemení zoznam, na ktorý sa volá, ale v dôsledku toho vracia zoradený zoznam.

Funkcia Syntax sort ():

sorted(iterable, key, reverse)

  • iterable - zoznam, n-tica, reťazec, množina, mrazená množina, slovník ľubovoľnej kolekcie alebo iterovateľný, ktoré je potrebné usporiadať.
  • reverzná spätná väzba určuje, či je radený zoznam, ktorý sa má obrátiť, alebo nie (tj v zostupnom poradí). to je
  • key - zadajte funkciu ako kľúč na porovnanie pre zoradenie. Je voliteľné .

Na získanie opisu funkcie zoradenia použite príkaz help, ako je uvedené nižšie.

Zvážte príklady:

Príklad č. 9:

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

Výkon:

Všimnite si, že môžeme tiež použiť funkciu list.sort () na vykonanie toho istého, ale rozdiely sú, funkcia sort () modifikuje zoznam na mieste a vráti None ako výsledok výstupu. Ďalším rozdielom funkcie list.sort () je to, že sa môže vzťahovať na jediný zoznam, zatiaľ čo triedené () sa môže vzťahovať na akúkoľvek kolekciu alebo iterovateľné.

Pozrime sa na príklad, v ktorom vytvoríme n-ticu (vieme, že na vytvorenie n-tice použite zložené zátvorky a tuple, ak sú usporiadané, ukladajú duplikáty, nemôžu sa použiť na index a sú nemenné) a aplikujú funkciu sort (),

Príklad č. 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)

Výkon:

Ak funkcia sort () aplikovaná na n-ticu poskytuje chybu ‚AttributeError: 'tuple' nemá žiadny atribút 'sort' '.

Funkcia sort () sa teda nemôže vzťahovať na n-ticu, dokonca ani na iné kolekcie okrem zoznamu.

Ďalej uvidíme niekoľko príkladov s rôznymi typmi údajov:

Príklad č. 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)

Výkon:

Ďalej vyskúšame funkciu sort () s opačným parametrom:

Pozrime sa na príklad:

Príklad č. 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)

Výkon:

Ďalej uvidíme funkciu sort () s kľúčovým parametrom, v kóde pod kódom prichytená funkcia len () do parametra key, takže funkcia sort () vráti zoznam v poradí triedenia na základe dĺžky prvkov.

Príklad č. 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)

Výkon:

Ďalej uvidíme funkciu sort () s kľúčovým parametrom, keď užívateľ definuje funkciu, v nasledujúcom kóde kódu prichádza odovzdanie funkcie returnSecond () ku kľúčovému parametru. Funkcia returnSecond () je užívateľ, ktorý definuje funkciu, ktorá práve vracia druhý prvok, takže funkcia sort () vracia nový zoradený zoznam v poradí triedenia na základe druhého prvku n-tice. Ak chceme usporiadať na základe prvého prvku, potom upravte funkciu returnSecond () tak, aby sa prvý prvok vrátil ako (L (0)).

Príklad č. 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)

Výkon:

Vyššie uvedený kód zmeníme pomocou funkcie lambda (funkcia lambda je anonymná funkcia, simuluje to isté ako vložené funkcie C a C ++).

Príklad č. 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)

Výkon:

Vyššie uvedený kód sa zmení na základe prvého prvku zmenou funkcie lambda.

Príklad č. 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)

Výkon:

Teraz vytvorme zoznam podrobností o žiakoch a uložíme jednotlivé podrobnosti o žiakoch, ktoré použijeme. Jedna n-tica obsahuje jeden študentský záznam, prvým prvkom n-tice je meno študenta, druhým prvkom nie je rolovacie číslo študenta a tretí prvok predstavuje celkové známky študenta. Ďalej chceme uložiť podrobnosti o študentovi v poradí podľa ich značiek, takže začnime s kódovaním.

Príklad č. 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))

Výkon:

záver

Na triedenie kolekcie sa používajú funkcie sort () a sort (). List.sort () upraví zoznam sám, zatiaľ čo zoradené (zoznam) neupravené do zoznamu vrátia nový zoradený zoznam. Funkcia sort () sa vzťahuje iba na zoznam, zatiaľ čo funkcia sort () sa môže vzťahovať na všetky kolekcie, ako sú zoznam, n-tica, slovník a všetky.

Odporúčané články

Toto je sprievodca triedením v Pythone. Tu diskutujeme o vstavanej funkcii triedenia v Pythone s programom a výstupom. Viac informácií nájdete aj v nasledujúcom článku -

  1. Premenné v Pythone
  2. Ničiteľ v Pythone
  3. Pripojenie k databáze Python
  4. Editory Pythonu
  5. Údajové typy PL / SQL
  6. Rôzne typy údajov SQL s príkladmi

Kategórie: