0Pricing
Coding Interview Prep · Lekcja

sorted() i funkcja key

Sortowanie liczb, napisów i krotek

sorted() i funkcja key to bezpłatna lekcja Coding Interview Prep na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Coding Interview Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Coding Interview Prep zawiera 4 lekcji w sumie.

Sortowanie wygrywa konkursy

Wiele zadań konkursowych staje się łatwych, gdy dane są uporządkowane. Pierwszym narzędziem jest sorted(), które zwraca nową uporządkowaną listę. 🏆

sorted() zwraca kopię

Wywołanie sorted(nums) pozostawia oryginalną listę bez zmian i zwraca nową, posortowaną listę. To świetne rozwiązanie, gdy później nadal potrzebna jest tablica wejściowa.

nums = [3, 1, 2]
print(sorted(nums))   # [1, 2, 3]
print(nums)           # [3, 1, 2]

list.sort() sortuje w miejscu

Jeśli oryginalna kolejność nie jest potrzebna, list.sort() sortuje listę w miejscu i zwraca None. Pozwala to oszczędzić pamięć przy dużych tablicach.

nums = [3, 1, 2]
nums.sort()
print(nums)   # [1, 2, 3]

Domyślna kolejność jest rosnąca

Domyślnie Python sortuje od najmniejszej wartości do największej. Liczby są uporządkowane od małych do dużych, a napisy według kolejności słownikowej, znak po znaku.

print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']

Odwrócenie kolejności za pomocą reverse

Przekazanie reverse=True sortuje elementy od największych do najmniejszych. To idealne rozwiązanie, gdy algorytm zachłanny potrzebuje najpierw największych elementów.

print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]

Poznaj funkcję key

Argument key określa, jak sortować każdy element. Python wywołuje key dla każdego elementu i porządkuje je według zwróconych wartości.

words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']

key z funkcją lambda

Niewielka funkcja lambda pozwala sortować według dowolnego wyrażenia bezpośrednio w kodzie. W tym przypadku liczby są uporządkowane według odległości od zera.

vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]

Sortowanie obiektów według pola

W przypadku krotek lub rekordów należy wskazać w key pole, które ma znaczenie. Pozostałe dane elementu zostaną zachowane automatycznie.

people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]

Sortowanie jest stabilne

Sortowanie w Pythonie jest stabilne: elementy o równych kluczach zachowują swoją pierwotną kolejność względną. Dzięki temu można bezpiecznie stosować kolejne sortowania do rozstrzygania remisów.

key jest lepsze niż ręczne porównywanie

Wartość key jest obliczana raz dla każdego elementu, więc rozwiązanie pozostaje szybkie przy dużych danych. Zamiast samodzielnie zamieniać elementy, warto użyć właśnie tego mechanizmu.

Sortowanie kosztuje O(n log n)

Python sortuje w czasie O(n log n). Dla n sięgającego kilkuset tysięcy elementów taki czas bez problemu mieści się w limicie jednej sekundy.

Szybki sprawdzian

Lista ma być uporządkowana, ale oryginał musi pozostać niezmieniony.

Podsumowanie

Można porządkować dane za pomocą sorted() albo sortować je w miejscu, odwracać kolejność za pomocą reverse i ustalać ranking dowolnych elementów za pomocą key. Stabilne sortowanie zachowuje prawidłową kolejność remisów. 🎉

Często zadawane pytania

Czy lekcja „sorted() i funkcja key” jest bezpłatna?

Tak — pełny tekst „sorted() i funkcja key” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Coding Interview Prep, przejdź na CoddyKit PRO. Kurs Coding Interview Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „sorted() i funkcja key”?

Sortowanie liczb, napisów i krotek Ćwiczysz Coding Interview Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Coding Interview Prep?

Nie wymagamy żadnego doświadczenia. Coding Interview Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „sorted() i funkcja key”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Coding Interview Prep?

Tak. Każda lekcja Coding Interview Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. sorted() i funkcja key
  2. Sortowanie według wielu pól
  3. Własna kolejność z functools.cmp_to_key
  4. Dlaczego sortowanie odblokowuje rozwiązania
← Powrót do Coding Interview Prep