Jak sortować listy i słowniki w Pythonie
Sortowanie jest podstawową operacją w programowaniu, umożliwiającą uporządkowanie danych w żądanej kolejności. Python zapewnia solidne narzędzia do sortowania list i słowników, ułatwiając wydajne manipulowanie danymi. W tym artykule przyjrzymy się sposobom sortowania list i słowników w Pythonie, w tym różnym metodom i przykładom.
Sortowanie list
Listy są jedną z najczęściej używanych struktur danych w Pythonie. Możesz sortować listy za pomocą wbudowanej metody sort()
lub funkcji sorted()
. Oto jak działa każda z metod:
Używanie sort()
Metoda sort()
sortuje listę w miejscu, co oznacza, że modyfikuje oryginalną listę i nie zwraca nowej listy. Domyślnie sortuje w kolejności rosnącej.
# Example: Sorting a list in ascending order
numbers = [4, 2, 9, 1, 5]
numbers.sort()
print(numbers) # Output: [1, 2, 4, 5, 9]
# Example: Sorting a list in descending order
numbers = [4, 2, 9, 1, 5]
numbers.sort(reverse=True)
print(numbers) # Output: [9, 5, 4, 2, 1]
W powyższych przykładach metoda sort()
sortuje listę numbers
najpierw w kolejności rosnącej, a następnie w kolejności malejącej, korzystając z parametru reverse=True
.
Używanie sorted()
Funkcja sorted()
zwraca nową posortowaną listę i nie zmienia oryginalnej listy. Pozwala również określić kolejność sortowania za pomocą parametru reverse
.
# Example: Using sorted() to get a new sorted list
numbers = [4, 2, 9, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # Output: [1, 2, 4, 5, 9]
print(numbers) # Output: [4, 2, 9, 1, 5] (original list is unchanged)
# Example: Using sorted() to get a new sorted list in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc) # Output: [9, 5, 4, 2, 1]
Tutaj sorted()
zwraca nową listę sorted_numbers
bez zmiany oryginalnej listy numbers
. Możesz również sortować w kolejności malejącej za pomocą parametru reverse=True
.
Sortowanie słowników
Sortowanie słowników polega na sortowaniu słownika według kluczy lub wartości. W przeciwieństwie do list, słowniki są z natury nieuporządkowane aż do Pythona 3.7, gdzie zaczęto zachowywać kolejność wstawiania. Oto, jak można sortować słowniki:
Sortowanie według kluczy
Aby posortować słownik według kluczy, należy użyć funkcji sorted()
w połączeniu ze słownikowymi wyrażeniami składniowymi lub pętlami.
# Example: Sorting a dictionary by keys
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_keys = {key: data[key] for key in sorted(data)}
print(sorted_by_keys) # Output: {'apple': 4, 'banana': 3, 'orange': 2}
W tym przykładzie słownik data
jest sortowany według kluczy, co skutkuje utworzeniem nowego słownika sorted_by_keys
, w którym klucze są uporządkowane rosnąco.
Sortowanie według wartości
Aby posortować słownik według jego wartości, możesz użyć funkcji sorted()
na elementach słownika, a następnie utworzyć nowy słownik.
# Example: Sorting a dictionary by values
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_values = dict(sorted(data.items(), key=lambda item: item[1]))
print(sorted_by_values) # Output: {'orange': 2, 'banana': 3, 'apple': 4}
Tutaj data.items()
zwraca listę krotek, a sorted()
służy do sortowania tych krotek według drugiego elementu (wartości) za pomocą funkcji lambda. Rezultatem jest nowy słownik sorted_by_values
z wartościami w kolejności rosnącej.
Wniosek
Sortowanie list i słowników w Pythonie jest proste i skuteczne dzięki metodzie sort()
i funkcji sorted()
dla list oraz różnym technikom dla słowników. Zrozumienie tych metod pomoże Ci zarządzać danymi i analizować je bardziej efektywnie. Eksperymentuj z tymi technikami sortowania, aby zobaczyć, jak można je zastosować w Twoich własnych projektach!