Johdatus lajitteluun Pythonissa

Jossain sovelluksen tai ohjelman vaiheessa meidän on järjestettävä tiedot tietyssä järjestyksessä, esimerkiksi järjestettävä työntekijät palkan tai jonkin sijoituksen perusteella, lajiteltava tuoteluettelo tuotteen hinnan perusteella ja niin kaikki. Siinä tapauksessa kehittäjän on toteutettava lajittelu ohjelmassa. Jos kehittäjä käyttää python-ohjelmointikieltä, se on erittäin helppo toteuttaa. Python tarjoaa sisäänrakennettuja toimintoja peruslajitteluun tai lajitteluominaisuuksien mukauttamiseen rakeisella tasolla. Pythonissa on 2 sisäänrakennettua toimintoa lajittelua varten.

Katsotaan kuinka lajitella erityyppisiä tietoja, lajitella tietoja räätälöityyn järjestykseen.

  • Meidän on suoritettava lajittelu elementtien tai elementoryhmien kokoelmassa, jotta saamme elementtien kokoelman jossain lajittelujärjestyksessä. Lajittelua varten vertailu on suoritettava kokoelman kunkin elementin kesken, ja vertailu on mahdollista vain ja vain jos ne ovat saman tyyppisiä, joten lajittelu voimme suorittaa keräyksessä, jos ne ovat samoja tietotyyppielementtejä, esimerkiksi kokonaisluku kokonaislukuun voi verrata, mutta ei kokonaislukua merkkijonoon.
  • Seuraava kohta on luoda elementtikokoelma, python-sovelluksessa, jossa meillä on luettelot, tuple-, set- ja sanakirjadatarakenteet, joita käytetään elementtien kokoelman tallentamiseen. Joten lajittelun suorittamiseksi on oltava perustiedot opinnäytetyöstä. Käytämme Python 3: ta, syntaksi saattaa olla hiukan erilainen, jos käytät myös Python 2: ta ja esimerkkilähtöä.

Lajittelutoiminto pythonissa

Pythonissa on kaksi sisäänrakennettua lajittelutoimintoa.

  • järjestellä()
  • lajitellut ()

Kaksi lajittelutoimintoa mainitaan alla:

1. lajitella ()

Lajittelu () -menetelmä lajittelee tietyn kokoelmalistan elementit tietyssä järjestyksessä joko nousevaan tai laskevaan.

Lajittelu () -funktion syntaksi on:

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

  • avain - parametrinäppäimet määrittelevä toiminto, jota käytetään lajitteluvertailuun.
  • Käänteinen - Parametri käänteinen, jos totta, lajiteltu lista peruutetaan, mikä tarkoittaa lajittelua laskevassa järjestyksessä.

Lajittelutoiminnon kuvaus saadaan käyttämällä alla annettua ohjekomentoa.

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

Aloitetaan lajittelutoiminto esimerkillä.

Esimerkki 1:

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

lähtö:

Kuten yllä olevassa koodissa, lajittelematon luettelo luodaan (20, 50, 10, 40, 60) ja lisäksi käytetään lajittelu () -toimintoa, joka lajittelee luettelon nousevassa järjestyksessä eikä palauta mitään.

Seuraavaksi yritämme lajitella () -toiminto desimaalin tai kelluvan datan tyypin mukaan.

Esimerkki 2:

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

lähtö:

Seuraavaksi yritämme lajitella () -toimintoa char-tietotyypissä.

Esimerkki 3:

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

lähtö:

Seuraavaksi yritämme lajitella () -toiminto merkkijonotietotyypillä.

Esimerkki 4:

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

lähtö:

Seuraavaksi yritämme lajitella () -toimintoa erilaisille tietotyyppielementeille.

Esimerkki 5:

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

lähtö:

Seuraavaksi yritämme lajitella () -toimintoa käänteisargumenteilla.

Esimerkki 6:

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

lähtö:

Yllä olevaan koodiin luodaan lajittelematon luettelo (26.7, 34.23, 67.45, 89.34, 23.18) ja edelleen käytetään lajittelu () -toimintoa käänteisellä = Tosi, käänteisen oletusarvo on Väärä, mikä lajittelee luettelon käänteisessä järjestyksessä tai laskeva järjestys.

Seuraavaksi yritämme lajitella () -toimintoa keskeisillä argumenteilla:

Avainparametri on lajittelu () -toiminnon tärkein komponentti. Tälle argumentille toimitetaan funktio, jota käytetään jokaisessa lajiteltavan luettelon elementissä järjestelemään tuloksena olevaan järjestykseen.

Aloitetaan esimerkki, oletetaan, että meillä on luettelo merkkijonoista ja haluamme lajitella luettelon luettelossa olevien merkkijonojen pituuden perusteella nousevassa järjestyksessä (lyhyimmästä pisimpään). Pythonin sisäänrakennettu len ()-funktio palauttaa merkkijonon pituuden, joten len (): tä voidaan käyttää avainargumentin välittämiseen.

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

lähtö:

Tuloksena oleva list.sort (avain = len) -järjestys on luettelo lajittelijonoista lyhimmästä pisinan. Taas list.sort (avain = len, käänteinen = tosi), mikä johtaa luettelon järjestykseen, on pisin ja lyhin. Kunkin luettelossa olevan elementin pituus määräytyy len () -funktion avulla.

Seuraavaksi yritämme lajitella () -toimintoa näppäimen kuljettaessa käyttäjän määrittelemään toiminto:

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

lähtö:

Tuloksena oleva list.sort-järjestys (avain = sort_onSecondChar)) on luettelo lajittelimerkkijonoista nousevassa järjestyksessä toisen merkin perusteella. Kun taas list.sort (avain = sort_onSecondChar, käänteinen = tosi) tuloksena oleva luettelon järjestys on aleneva toisen merkin perusteella. Käyttäjä päättää luettelon kunkin elementin lajittelusta funktion sort_onSecondChar () määrittelemiseksi.

2. lajiteltu ()

Lajiteltu () -toimintokutsu luettelossa tai kokoelmassa, se palauttaa uuden lajitellun luettelon. Lajiteltu () -toiminto ei muokkaa tai muuta luetteloa, johon sitä kutsutaan, mutta se palauttaa lajitellun luettelon sen seurauksena.

Lajiteltu () -toiminnon syntaksi:

sorted(iterable, key, reverse)

  • toistettavissa - luettelo, tuple, merkkijono, joukko, jäädytetty joukko, sanakirja kaikki kokoelmat tai toistettavat, jotka täytyy lajitella.
  • käänteinen - käänteinen määrittää, käännetäänkö lajiteltu luettelo vai ei (eli laskeva järjestys). se on
  • näppäin - määritä toiminto avaimena lajittelulle. Se on valinnainen .

Lajittelutoiminnon kuvaus saadaan käyttämällä alla annettua ohjekomentoa.

Mieti esimerkkejä:

Esimerkki 9:

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

lähtö:

Huomaa, että voimme käyttää myös list.sort () -toimintoa suorittaakseen saman, mutta erot ovat, lajittelu () -toiminto muuttaa luetteloa itse paikallaan ja palauttaa Ei mitään tulosteena. Toinen ero list.sort () -funktiossa on, että se voi koskea ainoaa luetteloa, kun taas lajiteltu () voi koskea mitä tahansa kokoelmaa tai toistettavissa.

Katsotaanpa esimerkkiä, jossa luomme tuplen (tiedämme, että tuple-käytön (ja) luomiseksi pidikkeet ja tuple-ominaisuudet ovat tilaamalla, se tallentaa kaksoiskappaleet, sitä ei voida soveltaa hakemistoon, ja se on muuttumaton) ja käyttää lajiteltua () -toimintoa .

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

lähtö:

Jos lajittelu () -toiminto on käytössä tuplessa, se antaa AttributeError: 'tuple' -objektilla ei ole määritteen 'sort' 'virhettä.

Joten lajittelutoiminto () ei voi koskea tuplaa, edes sitä ei voida soveltaa muihin kokoelmiin paitsi luetteloon.

Seuraavaksi näemme esimerkkejä erilaisista tietotyypeistä:

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

lähtö:

Seuraavaksi yritämme lajitella () -toimintoa käänteisparametrilla:

Tarkastellaan esimerkkiä:

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

lähtö:

Seuraavaksi näemme lajiteltu () -toiminnon avainparametrilla, koodin alla napsautettuna ohi len () -toiminnon avainparametriin, joten sitten lajiteltu () -toiminto palauttaa luettelon lajittelujärjestyksessä elementtien pituuden perusteella.

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

lähtö:

Seuraavaksi nähdään lajiteltu () -toiminto avainparametrilla, kun käyttäjä määrittelee toiminnon, koodin alla napsauttamalla ohjauspainikkeen ReturnSecond () toiminto avainparametriin. ReturnSecond () -toiminto on käyttäjän määrittelemä funktio, joka vain palauttaa toisen elementin, joten lajiteltu () -toiminto palauttaa uuden lajitellun luettelon lajittelujärjestyksessä kokonaisuuden toisen elementin perusteella. Jos haluamme lajitella ensimmäisen elementin pohjalta, muokkaa returnSecond () -toimintoa palauttaaksesi ensimmäisen elementin muodossa (L (0)).

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

lähtö:

Muutamme yllä olevaa koodia käyttämällä lambda-funktiota (lambda-funktio on nimettömäinen funktio, simuloi samaa kuin C: n ja C ++: n inline-funktiot).

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

lähtö:

Yllä oleva koodi muuttaa lajittelua ensimmäisen elementin perusteella muuttamalla lambda-toimintoa.

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

lähtö:

Nyt luodaan luettelo opiskelijoiden yksityiskohdista ja tallennetaan kunkin opiskelijan tiedot käyttämämme tupla. Yksi tuple sisältää yhden opiskelijan tietueen, tuplen ensimmäinen elementti on opiskelijan nimi, toinen elementti on opiskelijan rullanumero ja kolmas elementti on opiskelijan kokonaismerkinnät. Seuraavaksi haluamme tallentaa opiskelijan tiedot heidän pisteidensä järjestyksessä, joten aloittakaamme koodaus.

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

lähtö:

johtopäätös

Lajittelu () ja lajiteltu () -toiminnot käyttävät kokoelman lajittelua. Lista.sort () muokata itse luetteloon, kun taas lajiteltu (luettelo), jota ei muokata luetteloon, palauttaa uuden lajitellun luettelon. Lajittelu () -toiminto koskee vain luetteloa, kun taas lajiteltu () -toiminto voi koskea kaikkia kokoelmia, kuten luetteloa, tuplaa, sanakirjaa ja kaikkia.

Suositellut artikkelit

Tämä on opas lajitteluun Pythonissa. Tässä keskustellaan pythonin kahdesta sisäänrakennetusta lajittelutoiminnosta ohjelman ja tuotoksen kanssa. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -

  1. Python-muuttujat
  2. Tuhoaja Pythonissa
  3. Python-tietokantayhteys
  4. Python-toimittajat
  5. PL / SQL-tietotyypit
  6. Erityyppiset SQL-tiedot esimerkkeinä