0Pricing
Competitive Programming Academy · Lekcja

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'] = 22

Sprawdzanie 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] = i

Iterowanie 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

  1. Zbiory do sprawdzania przynależności i usuwania duplikatów
  2. Słowniki jako tablice wyszukiwania
  3. Counter i defaultdict w praktyce
  4. Grupowanie i kubełkowanie za pomocą mapy
← Powrót do Competitive Programming Academy