Sissejuhatus sortimisse Pythonis

Rakenduse või programmi mingil hetkel peame sorteerima andmeid mingis järjekorras, näiteks sorteerima töötajaid palga või mingi pingerea alusel, sorteerima tootenimekirja toote hinna ja nii kõik. Sel juhul peab arendaja sorteerimise programmis rakendama. Kui arendaja kasutab pythoni programmeerimiskeelt, siis on seda väga lihtne rakendada. Python pakub sisseehitatud funktsioone põhisorteerimise teostamiseks või sortimisfunktsioonide kohandamiseks granulaarsel tasemel. Pythonis on sortimiseks 2 sisseehitatud funktsiooni.

Vaatame, kuidas sortida eri tüüpi andmeid, sorteerida andmeid kohandatud järjekorras.

  • Elementide kogum või elementide rühmad peame sorteerima, nii et saame elementide kogumi mingis sortimisjärjestuses. Sorteerimiseks tuleb võrdlus teha kogumiku kõigi elementide vahel ning võrdlus on võimalik ainult ja ainult juhul, kui need on sama andmetüübiga, nii et sorteerimist saame teha kogumisel, kui need on samad andmetüübi elemendid, näiteks täisarv täisarvuni saab stringiga võrrelda, kuid mitte täisarvu.
  • Järgmine punkt on elementide kogumi loomine. Pythonis on meil loendite, kokkuvõtete, komplektide ja sõnastike andmestruktuurid, mida kasutati elementide kogumise salvestamiseks. Nii et sorteerimiseks peab olema lõputöödest arusaamine. Me kasutame Python 3, süntaks võib olla pisut erinev, kui kasutate ka Python 2 ja näiteväljundit.

Sorteerimise funktsioon pythonis

Pythonis on kaks sisseehitatud sortimisfunktsiooni.

  • sorteeri ()
  • sorteeritud ()

Allpool on nimetatud kahte sortimisfunktsiooni:

1. sorteeri ()

Sorteerimise () meetod sorteerib antud kogumisloendi elemendid kindlas järjekorras kas kasvavalt või kahanevalt.

Funktsiooni sort () süntaks on:

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

  • võti - parameetri keyspecify funktsioon, mida kasutatakse sortimise võrdlemiseks.
  • Tagurpidi - parameetri tagasikäik, kui see on tõene, sorteeritud loend pööratakse ümber, mis tähendab sortimist kahanevas järjekorras.

Sorteerimise funktsiooni kirjelduse saamiseks kasutage allpool toodud abikäsku.

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

Alustame sortimisfunktsiooni näitega.

Näide nr 1:

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

Väljund:

Nagu ülaltoodud koodis, luuakse sortimata loend (20, 50, 10, 40, 60) ja rakendage veel funktsiooni sort (), mis sorteerib loendi kasvavas järjekorras ega tagasta midagi.

Järgmisena proovime sortida () funktsiooni kümnendarvu või ujuktüübi korral.

Näide 2:

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

Väljund:

Järgmisena proovime sortida () funktsiooni char andmetüübil.

Näide 3:

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

Väljund:

Järgmisena proovime sortida () funktsiooni stringi andmetüübil.

Näide 4:

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

Väljund:

Järgmisena proovime sortida () funktsiooni erinevat tüüpi andmetüüpidel.

Näide 5:

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

Väljund:

Järgmisena proovime sorteerida () funktsiooni vastupidiste argumentidega.

Näide 6:

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

Väljund:

Ülaltoodud koodis luuakse sortimata loend (26.7, 34.23, 67.45, 89.34, 23.18) ja seejärel rakendage sortimise funktsiooni () tagurpidi = True, vastupidine vaikesuurus on False, mis sorteerib nimekirja vastupidises järjekorras või kahanev järjekord.

Järgmisena proovime funktsiooni sort () koos peamiste argumentidega:

Võtmeparameeter on sortimise () funktsiooni kõige olulisem komponent. Sellele argumendile antakse funktsioon, mida kasutatakse sorteeritava nimekirja igas elemendis, et järjestada saadud järjekorras.

Alustame näitega, oletame, et meil on keelpillide loend ja soovime sorteerida loendis olevate stringide pikkuse järgi kasvavas järjekorras (lühimast kuni pikimani). Pythoni sisseehitatud funktsioon len () tagastab stringi pikkuse, seega saab võtmeargumendi edastamiseks kasutada len ().

Näide # 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äljund:

Saadud list.sort (võti = len) järjekord on sortimisstringide loend lühimast kuni pikimani. Arvestades, et list.sort (võti = len, vastupidine = tõene), mille tulemuseks on loendi järjekord, on pikim ja lühim. Loendi iga elemendi pikkuse määrab funktsioon len ().

Järgmisena proovime sortida () funktsiooni, klahviga, mille abil kasutaja määratleb funktsiooni:

Näide 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äljund:

Saadud list.sort järjekord (võti = sort_onSecondChar)) on sortimisstringide loend kasvava järjekorra alusel, mis põhineb teisel märgil. Kui list.sort (võti = sort_onSecondChar, vastupidine = tõene) tulemuseks olev loendite järjestus kahaneb teise märgi põhjal. Loendi iga elemendi sortimise määrab kasutaja funktsiooni sort_onSecondChar () määratlemiseks.

2. sorteeritud ()

Sorteeritud () funktsioonikõne loendis või kollektsioonis tagastab uue sorteeritud loendi. Funktsioon Sorteeritud () ei redigeeri ega muuda loendit, millele see on kutsutud, kuid tagastab selle tulemusel sorteeritud loendi.

Funktsiooni Sorteeritud () süntaks:

sorted(iterable, key, reverse)

  • korduv - loetelu, loend, string, komplekt, külmutatud komplekt, sõnastik kogu sorteeritavat kogu või korratavat kogu.
  • vastupidine - täpsustage, kas sorteeritud loend tuleb tagasi pöörata (st kahanevas järjekorras). see on
  • klahv - määrake funktsioon sortimise võrdlusvõtmena. See on valikuline .

Sorteerimise funktsiooni kirjelduse saamiseks kasutage allpool toodud abikäsku.

Vaatleme näiteid:

Näide nr 9:

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

Väljund:

Pange tähele, et sama toimingu tegemiseks võime kasutada ka funktsiooni list.sort (), kuid erinevused on selles, et funktsioon sort () muudab loendit paigas ja tagastab väljundtulemusena Puudub. Veel üks funktsiooni list.sort () erinevus on see, et see võib rakenduda ainsale loendile, samas kui sorteeritud () võib rakenduda mis tahes kogumile või korratavale.

Vaatame näidet, kus loome tupli (me teame, et tuple'i loomiseks kasutage (ja) traksid ja tuple-funktsioone, kui see on tellitud, see salvestab duplikaate, ei saa indeksisse rakendada ja see on muutumatu) ning rakendab funktsiooni sorteeritud () .

Näide # 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äljund:

Kui sortimise () funktsiooni rakendati tuplile, annab see “AttributeError: objektil“ tuple ”pole atribuudi“ sortimine ”viga.

Nii et funktsioon sortimine () ei saa kehtimise korral kehtida, isegi muude kollektsioonide, välja arvatud loendi korral.

Järgmisena näeme näiteid erinevate andmetüüpide kohta:

Näide # 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äljund:

Järgmisena proovime sorteeritud () funktsiooni vastupidise parameetriga:

Vaatleme näidet:

Näide # 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äljund:

Järgmisena näeme funktsiooni sorteeritud () võtmeparameetriga, allpool koodisõnastatud funktsioon len () võtmeparameetriga, nii et funktsioon sorteeritud () tagastab loendi sortimisjärjestuses vastavalt elementide pikkusele.

Näide # 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äljund:

Järgmisena näeme sorteeritud () funktsiooni võtmeparameetriga, kui kasutaja funktsiooni määratleb, allpool koodisõnastatud funktsioon returnSecond () võtmeparameetriks. Funktsioon returnSecond () on kasutaja määratletud funktsioon, mis tagastab just teise elemendi, seega annab funktsioon sorteeritud () uue sorteeritud loendi sortimisjärjestuses, mis põhineb tüübi teisel elemendil. Kui tahame sortida esimese elemendi alusel, siis redigeerige funktsiooni returnSecond (), et esimene element saadaks kujul (L (0)).

Näide # 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äljund:

Ülaltoodud koodi muudame funktsiooni lambda abil (funktsioon lambda on anonüümne funktsioon, simuleerib sama, mis C- ja C ++ -funktsioonid).

Näide # 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äljund:

Ülaltoodud kood muudab sorteerimist esimese elemendi põhjal, muutes lambda funktsiooni.

Näide # 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äljund:

Nüüd loome õpilaste üksikasjade loendi ja salvestage iga õpilase kohta üksikasjalik loetelu, mida me kasutame. Üks tükk sisaldab ühte õpilaskirjet, esimene element tuplis on õpilase nimi, teine ​​element on õpilase rullnumber ja kolmas element on õpilase kogusummad. Järgmisena tahame talletada õpilase andmed nende märkide järjekorras, nii et alustagem kodeerimist.

Näide # 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äljund:

Järeldus

Funktsiooni Sorteeri () ja Sorteeritud () abil saab kogu sorteerida. List.sort () redigeeritakse loendisse ise, samas kui sortimata (list), mida loendis ei muudeta, tagastatakse uus sorteeritud loend. Funktsioon Sorteeri () kehtib ainult loendi jaoks, samas kui funktsioon Sorteeritud () võib kehtida kogu kogu, näiteks loendi, tupli, sõnastiku ja kõigi kohta.

Soovitatavad artiklid

See on juhend Pythonis sorteerimiseks. Siin arutame programmi ja väljundiga kahte sisseehitatud sortimisfunktsiooni pythonis. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. Pythoni muutujad
  2. Hävitaja Pythonis
  3. Pythoni andmebaasi ühendus
  4. Pythoni toimetajad
  5. PL / SQL andmetüübid
  6. Erinevat tüüpi SQL-i andmed koos näidetega

Kategooria: