Efektywne sortowanie danych
Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 48 z 78.
Sortowanie to podstawowa operacja w informatyce, a Python oferuje zaawansowane wbudowane narzędzia do wydajnego sortowania danych. Główną funkcją służącą do sortowania jest sorted(), której można używać do sortowania różnych typów danych, w tym liczb, ciągów znaków i bardziej złożonych obiektów.
Podstawowe sortowanie:
Funkcja sorted() przyjmuje jako argument obiekt iterowalny (np. listę, krotkę lub zbiór) i zwraca nową listę zawierającą posortowane elementy. Domyślnie sortuje w kolejności rosnącej.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Wynik: [1, 1, 2, 3, 4, 5, 6, 9]W tym przykładzie sorted() sortuje listę numbers w kolejności rosnącej.
Sortowanie w odwrotnej kolejności:
Aby sortować w kolejności malejącej, możesz użyć parametru reverse i ustawić jego wartość na True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Wynik: [9, 6, 5, 4, 3, 2, 1, 1]W tym przypadku sorted() sortuje listę numbers w kolejności malejącej.
Sortowanie ciągów znaków:
Funkcja sorted() może również sortować ciągi znaków według ich kolejności leksykograficznej (czyli kolejności, w jakiej pojawiłyby się w słowniku).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Wynik: ['apple', 'banana', 'cherry']W tym przykładzie sorted() sortuje listę words w kolejności alfabetycznej.
Niestandardowe sortowanie z funkcją kluczową:
W przypadku bardziej złożonych potrzeb związanych z sortowaniem możesz użyć parametru key, aby określić funkcję, która ustala kolejność sortowania. Funkcja key jest stosowana do każdego elementu przed sortowaniem, a zwrócone wartości są używane do porównania.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Wynik: ['fig', 'kiwi', 'banana']W tym przypadku sorted() sortuje listę words według długości każdego słowa, używając funkcji len() jako key.
Wyzwanie
ŁatwyNapisz program, który wykonuje następujące zadania sortowania za pomocą funkcji sorted():
- Posortuj listę liczb w kolejności rosnącej.
- Posortuj tę samą listę liczb w kolejności malejącej.
- Posortuj listę ciągów znaków w kolejności alfabetycznej.
- Posortuj tę samą listę ciągów znaków według ich długości.
Spróbuj swoich sił
# Dane wejściowe na początek
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# Zadanie 1: Posortuj liczby rosnąco
# Zadanie 2: Posortuj liczby malejąco
# Zadanie 3: Posortuj słowa alfabetycznie
# Zadanie 4: Posortuj słowa według długości
# Zastąp 'None' swoim kodem dla każdego zadania
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# Wyświetl wyniki
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Odkrywanie zmiennych
StałeWielokrotne przypisania zmiennychZamiana zmiennychZmienne zastępczeZaokrąglanie liczbKonwersja na listę4Aplikacja książki kontaktów
Wyświetl menuDodaj kontakt7Zbiory — część 2
Działania matematyczne — część 1Działania matematyczne — część 2Powtórka — poszukiwanie skarbówPodzbiory i nadzbioryIterowanie po zbiorachPowtórka — śledzenie turnieju10Podstawowe składanie list
SkładniaTworzenie prostych listDodawanie warunkówUżywanie agregacji danychPowtórka – dom listPowtórka – elementy wolności13System zarządzania zapasami
Przegląd projektuDodawanie produktu2Słowniki — część 1
Czym jest słownik?Tworzenie słownikaDostęp do wartościModyfikowanie słownikówPowtórzenie — menedżer przepisów5Zaawansowane podejmowanie decyzji
Operator warunkowySprawdzanie przynależnościSprawdzanie tożsamościBłędy wcięćPowtórka — filtr wakacyjny8Menedżer rekordów uczniów
Przegląd projektuDodawanie ucznia11Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Wyzwanie podsumowujące — sortowanie z lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Podsumowanie — suma elementów zagnieżdżonej listy14Funkcje wyższego rzędu
Funkcja mapFunkcja filterPodsumowanie – walidator adresów e-mailPodsumowanie – procesor liczb3Słowniki, część 2
Metody słownikówZagnieżdżone słownikiSprawdzanie kluczyIterowanie po słownikachPowtórzenie — licznik częstotliwości9Zaawansowana agregacja danych
Używanie sumyZnajdowanie minimum i maksimumEfektywne sortowanie danychPowtórka – sortowanie słowników12Podstawowa obsługa błędów
Czym jest obsługa błędów?Blok try i exceptObsługa wielu wyjątkówPodsumowanie – błędy w koszyku zakupowymPoćwicz samodzielnie: Kompilator Python online