Słowniki Pythona: struktury i mapy skrótów
Opanuj słowniki Pythona. Dowiedz się, jak przechowywać, pobierać i obsługiwać dane pary klucz-wartość. Poznaj wydajność i najlepsze praktyki dotyczące mapowań.
Przegląd
Słowniki są prawdopodobnie najważniejszą i zoptymalizowaną strukturą danych w Pythonie. Słownik to modyfikowalny zbiór wartości danych przechowywanych w parach „klucz:wartość”. Jeśli wyobrazisz sobie słownik z prawdziwego świata, „klucz” to szukane słowo, a „wartość” to definicja. Taka struktura parowania sprawia, że pobieranie, aktualizowanie i zarządzanie danymi relacyjnymi jest niezwykle wydajne.
Pod maską słowniki Pythona są zaimplementowane jako wysoce zoptymalizowane tabele skrótów (lub mapy skrótów). Oznacza to, że pobieranie wartości za pomocą jej klucza jest operacją o stałym czasie „O(1)”. Niezależnie od tego, czy słownik zawiera dziesięć, czy dziesięć milionów pozycji, Python może natychmiast przejść bezpośrednio do adresu pamięci wartości, bez konieczności przeglądania całej kolekcji.
Aby zdefiniować słownik, używasz nawiasów klamrowych `{}` z kluczami i wartościami oddzielonymi dwukropkami `:`. Klucze muszą być niezmiennymi typami (takimi jak ciągi znaków, liczby całkowite lub krotki), co oznacza, że nie można używać listy jako klucza słownika. Wartościami mogą jednak być absolutnie dowolne — w tym listy, obiekty, a nawet głęboko zagnieżdżone słowniki, co czyni je idealnymi do reprezentowania struktur danych w stylu JSON.
Dostęp do wartości odbywa się za pomocą notacji nawiasowej (np. `użytkownik["nazwa"]`). Jeśli jednak klucz nie istnieje, podejście to zgłasza błąd „KeyError”, natychmiast wstrzymując wykonywanie programu. Aby napisać bezpieczniejszy kod, profesjonaliści używają metody `.get()` (np. `user.get("name")`), która w przypadku braku klucza zgrabnie zwraca wartość `None` lub niestandardową wartość domyślną, zapobiegając niepotrzebnym awariom.
Historycznie rzecz biorąc, słowniki Pythona były całkowicie nieuporządkowane. Jednakże od dniaPython 3.7 słowniki mają oficjalną gwarancję zachowania kolejności wstawiania. Oznacza to, że podczas iteracji po słowniku przy użyciu metod takich jak `.keys()`, `.values()` lub `.items()` elementy zostaną zwrócone w dokładnej kolejności, w jakiej zostały oryginalnie dodane do słownika, łącząc szybkość map skrótów z przewidywalnością list.
Dane wyjściowe kodu i wykonania
Tworzenie profilu konfiguracji użytkownika w dużym stopniu wykorzystującego zagnieżdżone pary klucz-wartość.
user = {
"username": "coder123",
"role": "admin",
"active": True
}
user["last_login"] = "2026-04-10" # Adding a key
print(f"Username is {user['username']}")
# Iterating over key-value pairs
for key, value in user.items():
print(f"{key}: {value}")Username is coder123
username: coder123
role: admin
active: True
last_login: 2026-04-10Wdrażanie krok po kroku
- Obsługa odpowiedzi JSON z interfejsów API REST
- Mapowanie unikalnych identyfikatorów na duże obiekty danych
- Przechowywanie parametrów konfiguracyjnych aplikacji
Często zadawane pytania
Co się stanie, jeśli spróbuję uzyskać dostęp do klucza, który nie istnieje?
Użycie notacji nawiasowej (użytkownik["nazwa"]) powoduje wyświetlenie błędu KeyError. Użyj user.get("name"), aby zamiast tego zwrócić None bez rzucania.
Powiązane tematy
Dowiedz się wszystkiego o listach w Pythonie. Odkryj, jak tworzyć, wycinać, modyfikować i iterować po tablicach natywnie w języku Python.
Wyjaśnienie zmiennych i typów danych w PythonieZrozumienie zmiennych Pythona i podstawowych typów danych (łańcuchy, liczby całkowite, zmiennoprzecinkowe, wartości logiczne). Kompletny przewodnik dla początkujących dotyczący przydzielania pamięci w Pythonie.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Jak sortować listę w Pythonie
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Ściągawka dotycząca metod ciągów w Pythonie
Kompletny przewodnik dotyczący manipulacji ciągami znaków w języku Python. Opanuj formatowanie, wyszukiwanie, dzielenie, zastępowanie i sprawdzanie właściwości ciągów.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.