Razvrščanje seznama v Pythonu: razlika med sortiranim in razvrščenim

Posel

V Pythonu lahko seznam razvrstite v naraščajočem ali padajočem vrstnem redu na dva načina.

  • sort()
  • sorted()

Če želite razvrstiti niz ali tuple, uporabite ukaz sorted().

Tu so na voljo naslednje informacije.

  • Metoda tipa seznam, ki razvrsti prvotni seznamsort()
  • Ustvari nov razvrščen seznam, vgrajena funkcija: .sorted()
  • Kako razvrščati nize in sklope

Razvrščanje prvotnega seznama, metoda tipa list: sort()

metoda sort() je metoda tipa seznam.

Destruktivni postopek, pri katerem se prvotni seznam prepiše na novo.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Upoštevajte, da funkcija sort() vrne None.

print(org_list.sort())
# None

Privzeto je naraščajoči vrstni red. Če želite razvrščati v padajočem vrstnem redu, nastavite argument reverse na true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Ustvari nov razvrščen seznam, vgrajena funkcija: sorted()

sorted() je vgrajena funkcija.

Vrne razvrščen seznam, če je kot argument naveden seznam, ki ga je treba razvrstiti. To je nedestruktivni postopek, ki ne spremeni prvotnega seznama.

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]

Tako kot pri funkciji sort() je privzeta vrednost naraščajoči vrstni red. Če želite razvrščati v padajočem vrstnem redu, nastavite argument reverse na 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]

Kako razvrščati nize in sklope

Ker so nizi in nizi nespremenljivi, ni na voljo metode sort(), s katero bi lahko ponovno zapisali prvotni objekt.

Po drugi strani pa je lahko argument funkcije sorted(), ki ustvari razvrščen seznam kot nov objekt, tako niz ali tuple kot tudi seznam. Ker pa funkcija sorted() vrne seznam, ga je treba pretvoriti v niz ali tuple.

Razvrščanje nizov

Če je kot argument funkcije sorted() naveden niz, se vrne seznam, v katerem je vsak znak sortiranega niza shranjen kot element.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Če želite seznam nizov združiti v en sam niz, uporabite metodo join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Če želite razvrščati v padajočem vrstnem redu, nastavite argument reverse na 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

Velikost niza je odvisna od kodne točke Unicode (znakovne kode) znaka.

Razvrščanje nizov

Tupli so enaki nizom; navedba tupla kot argumenta funkcije sorted() vrne razvrščen seznam elementov.

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]

Če želite seznam pretvoriti v tuple, uporabite funkcijo tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Če želite razvrščati v padajočem vrstnem redu, nastavite argument reverse na 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)