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 liste
sort()
- 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)