Słowniki jako tablice wyszukiwania
Mapowanie kluczy na wartości dla szybkiego dostępu
Słowniki jako tablice wyszukiwania to bezpłatna lekcja Competitive Programming Academy na CoddyKit. To lekcja 2 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 Competitive Programming Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.
Idea słownika
Słownik mapuje klucze na wartości, dzięki czemu można pobrać zapisaną odpowiedź po nazwie zamiast przeszukiwać wszystkie elementy. To konkursowa tablica wyszukiwania. 🔑
Dostęp w czasie stałym
Podobnie jak zbiór, dict haszuje klucz, dlatego odczyt i zapis zajmują w przybliżeniu O(1). Właśnie ta szybkość pozwala zastąpić powolne wyszukiwanie liniowe.
Tworzenie słownika
Pary klucz–wartość należy zapisywać w nawiasach klamrowych albo rozpocząć od pustej pary nawiasów klamrowych. Każdy klucz wskazuje dokładnie jedną wartość.
age = {'amy': 21, 'bob': 19}
empty = {}Odczyt po kluczu
Wartość należy pobierać za pomocą nawiasów kwadratowych wokół klucza. Klucz działa podobnie jak indeks, ale może być napisem, liczbą lub krotką.
print(age['amy'])Brakujący klucz powoduje błąd
Odczyt nieistniejącego klucza za pomocą nawiasów zgłasza wyjątek KeyError. W zawodach programistycznych natychmiast prowadzi to do werdyktu o błędzie wykonania.
Bezpieczny odczyt za pomocą get
Proszę użyć get, aby w razie braku klucza zwrócić wartość domyślną zamiast doprowadzić do błędu. To bezpieczny sposób odczytywania kluczy, których może nie być.
count = age.get('zoe', 0)Wstawianie i aktualizowanie
Przypisanie wartości do klucza albo go dodaje, albo zastępuje poprzednią wartość. Ta sama składnia obsługuje zarówno wstawianie, jak i aktualizowanie.
age['cara'] = 25
age['amy'] = 22Sprawdzanie przed odczytem
Obecność klucza należy sprawdzić za pomocą in, zanim zostanie on użyty. Chroni to przed KeyError i sprawia, że logika programu jest jednoznaczna.
if 'bob' in age:
print(age['bob'])Mapowanie wartości na pozycje
Klasyczny sposób polega na zapisaniu indeksu każdej wartości, aby później jednym krokiem sprawdzić, gdzie się znajdowała. To świetne rozwiązanie w zadaniach polegających na znajdowaniu par.
pos = {}
for i, v in enumerate(nums):
pos[v] = iIterowanie po parach
Klucze i wartości można przeglądać razem za pomocą items. Jest to czytelniejsze niż ponowne wyszukiwanie każdej wartości wewnątrz pętli.
for name, a in age.items():
print(name, a)Klucze muszą być haszowalne
Klucze słownika muszą być haszowalne, dlatego należy używać liczb, napisów lub krotek. Lista nie może być kluczem, ale krotka liczb całkowitych już tak.
seen = {(0, 0): 'start'}Szybki test
Należy odczytać klucz, który może nie istnieć, bez doprowadzania do błędu.
Podsumowanie
Słownik mapuje klucze na wartości i zapewnia wyszukiwanie w czasie O(1). Proszę używać get do bezpiecznych odczytów oraz zapisywać indeksy, aby zamieniać powolne przeszukiwanie na natychmiastowe odpowiedzi. 🚀
Często zadawane pytania
Czy lekcja „Słowniki jako tablice wyszukiwania” jest bezpłatna?
Tak — pełny tekst „Słowniki jako tablice wyszukiwania” 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 Competitive Programming Academy, przejdź na CoddyKit PRO. Kurs Competitive Programming Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Słowniki jako tablice wyszukiwania”?
Mapowanie kluczy na wartości dla szybkiego dostępu Ćwiczysz Competitive Programming Academy 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ąć Competitive Programming Academy?
Nie wymagamy żadnego doświadczenia. Competitive Programming Academy 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 2 z 4.
Ile czasu zajmuje lekcja „Słowniki jako tablice wyszukiwania”?
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 Competitive Programming Academy?
Tak. Każda lekcja Competitive Programming Academy 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
- Zbiory do sprawdzania przynależności i usuwania duplikatów
- Słowniki jako tablice wyszukiwania
- Counter i defaultdict w praktyce
- Grupowanie i kubełkowanie za pomocą mapy