Pythonissa on kaksi tapaa lajitella luettelo nousevaan tai laskevaan järjestykseen.
sort()
sorted()
Jos haluat lajitella merkkijonon tai monikon, käytä sorted() -toimintoa.
Seuraavat tiedot annetaan tässä.
- List-tyyppinen menetelmä, joka lajittelee alkuperäisen listan.
sort()
- Uuden lajitellun luettelon luominen, sisäänrakennettu toiminto: .
sorted()
- Miten lajitella merkkijonoja ja tupleja
Alkuperäisen listan lajittelu, metodi tyyppiä list: sort()
sort() on listatyyppinen metodi.
Tuhoava prosessi, jossa alkuperäinen luettelo kirjoitetaan uudelleen.
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
Huomaa, että sort() palauttaa None.
print(org_list.sort())
# None
Oletusarvo on nouseva järjestys. Jos haluat lajitella alenevassa järjestyksessä, aseta argumentin reverse arvoksi true.
org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]
Luo uusi lajiteltu lista, sisäänrakennettu funktio: sorted()
sorted() on sisäänrakennettu funktio.
Palauttaa lajitellun listan, kun lajiteltava lista on annettu argumenttina. Tämä on ei-tuhoava prosessi, joka ei muuta alkuperäistä listaa.
org_list = [3, 1, 4, 5, 2]
new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]
Kuten sort()-toiminnossa, oletusarvo on nouseva järjestys. Jos haluat lajitella laskevassa järjestyksessä, aseta argumentin reverse arvoksi true.
new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]
Miten lajitella merkkijonoja ja tupleja
Koska merkkijonot ja tuplet ovat muuttumattomia, ei ole käytettävissä sort()-metodia alkuperäisen objektin uudelleenkirjoittamiseksi.
Toisaalta sorted()-funktion argumentti, joka tuottaa lajitellun listan uutena objektina, voi olla merkkijono tai tuple sekä lista. Koska sorted()-funktio kuitenkin palauttaa listan, se on muunnettava merkkijonoksi tai tuplaksi.
Merkkijonojen lajittelu
Kun sorted()-funktion argumenttina on merkkijono, palautetaan lista, jossa jokainen lajitellun merkkijonon merkki on tallennettu elementtinä.
org_str = 'cebad'
new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']
Jos haluat liittää merkkijonojen luettelon yhdeksi merkkijonoksi, käytä join()-metodia.
new_str = ''.join(new_str_list)
print(new_str)
# abcde
Jos haluat lajitella alenevassa järjestyksessä, aseta argumentin reverse arvoksi true.
new_str = ''.join(sorted(org_str))
print(new_str)
# abcde
new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba
Merkkijonon koko määräytyy merkin Unicode-koodipisteen (merkkikoodin) mukaan.
Tuplien lajittelu
Tuplat ovat samoja kuin merkkijonot; tuplan määrittäminen sorted()-funktion argumentiksi palauttaa lajitellun listan elementtejä.
org_tuple = (3, 1, 4, 5, 2)
new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]
Jos haluat muuntaa listan tuplaksi, käytä tuple() -toimintoa.
new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)
Jos haluat lajitella alenevassa järjestyksessä, aseta argumentin reverse arvoksi true.
new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)
new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)