Sortering af en liste i Python: forskellen mellem sorteret og sorteret

Forretning

Der er to måder at sortere en liste i stigende eller faldende rækkefølge på i Python.

  • sort()
  • sorted()

Hvis du vil sortere en streng eller en tupel, skal du bruge sorted().

Her findes følgende oplysninger.

  • En metode af typen list, der sorterer den oprindelige listesort()
  • Generer en ny sorteret liste, indbygget funktion: .sorted()
  • Sådan sorterer du strenge og tupler

Sortering af den oprindelige liste, en metode af typen list: sort()

sort() er en metode af listetypen.

En destruktiv proces, hvor selve den oprindelige liste omskrives.

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

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

Bemærk, at sort() returnerer ingen.

print(org_list.sort())
# None

Standardindstillingen er opstigende rækkefølge. Hvis du ønsker at sortere i faldende rækkefølge, skal du sætte argumentet reverse til true.

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

Generer en ny sorteret liste, indbygget funktion: sorted()

sorted() er en indbygget funktion.

Returnerer en sorteret liste, når den liste, der skal sorteres, er angivet som argument. Dette er en ikke-destruktiv proces, som ikke ændrer den oprindelige liste.

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]

Som med sort() er standardindstillingen opstigende rækkefølge. Hvis du ønsker at sortere i faldende rækkefølge, skal du sætte argumentet reverse til 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]

Sådan sorterer du strenge og tupler

Da strings og tupler er uforanderlige, er der ingen sort()-metode til rådighed til at omskrive det oprindelige objekt.

På den anden side kan argumentet for funktionen sorted(), som genererer en sorteret liste som et nyt objekt, være en streng eller tupel samt en liste. Men da sorted() returnerer en liste, skal den konverteres til en streng eller tupel.

Sortering af strenge

Når en streng er angivet som argument for funktionen sorted(), returneres en liste, hvor hvert tegn i den sorterede streng er gemt som et element.

org_str = 'cebad'

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

Hvis du vil sammenkæde en liste af strenge til en enkelt streng, skal du bruge metoden join() for at sammenkæde en liste af strenge.

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

Hvis du ønsker at sortere i faldende rækkefølge, skal du indstille argumentet reverse til 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

Størrelsen af en streng bestemmes af Unicode-kodepunktet (tegnkoden) for tegnet.

Sortering af tupler

Tupler er det samme som strings; hvis du angiver en tupel som argument for funktionen sorted(), returneres en sorteret liste af elementer.

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]

Hvis du vil konvertere en liste til en tuple, skal du bruge tuple().

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

Hvis du ønsker at sortere i faldende rækkefølge, skal du indstille argumentet reverse til 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)
Copied title and URL