Listan lajittelu Pythonissa: ero lajitellun ja lajitellun välillä

liiketoiminta

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)