sorted()

Zwraca nową, posortowaną listę z elementów dowolnej kolekcji.

Zwraca
Nową, posortowaną listę.
Na tej stronie

Przykład

#
Python
scores = [72, 95, 64, 88]
print(sorted(scores))
print(sorted(scores, reverse=True))
print(sorted(["Python", "CSS", "HTML"], key=len))
print(scores)
Wynikzapisany wynik, możesz go sprawdzić
[64, 72, 88, 95]
[95, 88, 72, 64]
['CSS', 'HTML', 'Python']
[72, 95, 64, 88]

Definicja i zastosowanie

#

Funkcja sorted() tworzy nową listę z posortowanymi elementami. Oryginalna kolekcja się nie zmienia, więc działa także na krotkach, zbiorach i napisach.

Parametr key przyjmuje funkcję, której wynik decyduje o kolejności, na przykład key=len sortuje po długości, a key=lambda s: s["points"] po polu słownika. Parametr reverse=True odwraca kolejność.

Sortowanie w Pythonie jest stabilne: elementy o równych kluczach zachowują wzajemną kolejność. Pozwala to sortować po kilku kryteriach, sortując najpierw po mniej ważnym.

Składnia

#
Składnia
sorted(iterable, key=None, reverse=False)

Parametry

#
  • iterable

    kolekcja

    Elementy do posortowania.
  • key

    funkcja, opcjonalna

    Funkcja wyliczająca klucz sortowania.
  • reverse

    bool, domyślnie False

    Sortowanie malejące, gdy True.

Więcej przykładów

#
Sortowanie słowników
Python
students = [
    {"name": "Kuba", "points": 90},
    {"name": "Ania", "points": 120},
    {"name": "Ola", "points": 90},
]

ranking = sorted(students, key=lambda s: (-s["points"], s["name"]))
print([s["name"] for s in ranking])
Wynikzapisany wynik, możesz go sprawdzić
['Ania', 'Kuba', 'Ola']

Dobre praktyki

#
  • Do sortowania po kilku kryteriach zwracaj z key krotkę, np. (-punkty, imie).
  • Jeśli chcesz posortować listę w miejscu, bez tworzenia nowej, użyj metody list.sort().

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.