Python - Listy sortowania
Sortuj listę alfanumerycznie
Obiekty list mają
sort()
metodę, która domyślnie sortuje listę alfanumerycznie, rosnąco:
Przykład
Posortuj listę alfabetycznie:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort()
print(thislist)
Przykład
Posortuj listę numerycznie:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
Sortuj malejąco
Aby posortować malejąco, użyj argumentu słowa kluczowego reverse = True
:
Przykład
Sortuj listę malejąco:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
Przykład
Sortuj listę malejąco:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
Dostosuj funkcję sortowania
Możesz także dostosować swoją własną funkcję, używając argumentu słowa kluczowego .key =
function
Funkcja zwróci liczbę, która posłuży do sortowania listy (najniższa liczba jako pierwsza):
Przykład
Sortuj listę na podstawie tego, jak blisko liczby jest 50:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key =
myfunc)
print(thislist)
Sortowanie bez uwzględniania wielkości liter
Domyślnie w sort()
metodzie rozróżniana jest wielkość liter, co powoduje, że wszystkie wielkie litery są sortowane przed małymi literami:
Przykład
Sortowanie z uwzględnieniem wielkości liter może dać nieoczekiwany wynik:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
Na szczęście możemy użyć funkcji wbudowanych jako funkcji kluczowych podczas sortowania listy.
Więc jeśli potrzebujesz funkcji sortowania bez uwzględniania wielkości liter, użyj str.lower jako kluczowej funkcji:
Przykład
Wykonaj sortowanie listy bez rozróżniania wielkości liter:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key
= str.lower)
print(thislist)
Odwrotna kolejność
Co zrobić, jeśli chcesz odwrócić kolejność listy, niezależnie od alfabetu?
Metoda reverse()
odwraca bieżącą kolejność sortowania elementów.
Przykład
Odwróć kolejność elementów listy:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)