Podstawowe struktury danych w Pythonie – słowniki

Cykl artykułów: Po przeczytaniu kilku krótkich artykułów i przerobieniu kilku krótkich plików na colabie, zrozumiesz i nauczysz się obsługiwać trzy kluczowe podstawowe struktury danych w Pythonie – listy, słowniki i zestawy tak, by następnie móc z nimi pracować i wywołać na nich podstawowe metody.

Wstęp

Jeśli kiedykolwiek korzystał_aś z Javy, C++ lub JS, prawdopodobnie przewijały się tam takie konstrukcje jak ArrayList, HashMap czy HashSet. W Pythonie ich odpowiednikami są kolejno listy, słowniki i zestawy

Gdyby porównać programistów do szefów kuchni, to te struktury danych byłyby jak trzy podstawowe noże, których używasz każdego dnia. Jeden z nich jest to warzyw, drugi do mięsa, a trzeci do krojenia chleba – Niby nóż to nóż, ale wybierasz ten, który w danym momencie najlepiej odpowiada Twoim potrzebom.

Słowniki (dict)

Definicja

W Pythonie słownik (ang. dictionary) to uporządkowana kolekcja par „klucz: wartość”, gdzie klucze muszą być unikalne i niezmienne, a wartości mogą być dowolnym obiektem. Słowniki są często używane do przechowywania i odwoływania się do danych za pomocą nazw, a nie indeksów.

Cechy słownika

  • Klucz: To element, który służy do identyfikacji wartości. Może być to liczba, ciąg znaków, krotka, ale nie może to być lista.
  • Wartość: To obiekt przechowywany w słowniku, powiązany z kluczem.
  • Iterowanie: Można iterować po kluczach, wartościach lub parach klucz-wartość używając keys(), values() i items(). 
  • Od Pythona 3.7 słowniki zachowują kolejność dodawania (podobnie jak LinkedHashMap w Javie).
  • Słowniki vs. listy: Słowniki są bardziej efektywne w przypadku, gdy potrzebujesz odwołać się do danych za pomocą unikalnego identyfikatora (klucza), a listy są bardziej odpowiednie, gdy elementy są indeksowane numerami. 
  • Słowniki vs. zestawy: Zestawy (sets) przechowują tylko unikalne elementy, bez powiązanych wartości, podczas gdy słowniki przechowują pary klucz-wartość. 

Podstawowe metody i ich zachowanie

MetodaOpisMutuje oryginał?Zwraca
d[k] = vDodaje lub nadpisuje parę✔️Wartość v
d.get(k, default)Bezpieczny odczytWartość lub default
d.pop(k[, default])Usuwa i zwraca wartość pod k✔️Wartość lub default
d.update(other)Masowe dodanie/aktualizacja✔️None
d.keys()Widok kluczyWidok – iterowalny
d.values()Widok wartościWidok
d.items()Widok (klucz, wartość)Widok
d.copy()Płytka kopiaKopia słownika

Kiedy stosować?

SytuacjaDlaczego słownik?
Musisz odwzorować identyfikator → daneDostęp w O(1) po haszu klucza.
Łapiesz dane z API JSONNaturalnie odwzorowują się na dict.
Potrzebujesz licznika elementówUżyj collections.Counter (specjalizacja słownika).

To tyle, jeśli chodzi o teorię. Teraz czas na praktykę. Zajrzyj do naszego notatnika Colab, gdzie znajdziesz dokładne wytłumaczenie wszystkich podstawowych (i nieco bardziej zaawansowanych) metod związanych z listami.
Możesz skopiować lub pobrać notatnik, by móc uruchomić go dla siebie i pobawić się listami.

Na końcu notatnika znajdziesz 3 zadania.
Zrób je, a jeśli będziesz mieć jakieś pytania, daj znać w komentarzach (tylko nie spoiluj rozwiązaniami zadań – niech inni też mają chwilę zabawy!).

Jeśli opanowałeś materiał z Colaba, przejdź do następnego artykułu na temat zestawów.

Co dalej?

Zapisz się do naszego newslettera, żeby nigdy nie przegapić żadnego wartościowego artykułu.

Zajrzyj do sekcji Kariera w AI, gdzie znajdziesz konkretne materiały o zmianach na rynku pracy – w Polsce i na świecie – oraz ścieżkach kariery związanych ze sztuczną inteligencją (nie tylko jako programista!).

→ A jeśli chcesz pisać modele i pracować jako Architekt AI, ale nie wiesz, od czego zacząć (lub utknąłeś gdzieś na ścieżce), odwiedź dział Nauka AI – czeka tam wiedza, ciekawostki i realne wsparcie.


! Uwaga

Niniejszy ebook ma charakter informacyjny i edukacyjny. Nie stanowi porady prawnej ani oferty pracy w rozumieniu przepisów krajowych lub unijnych.
Przy tworzeniu niniejszego artykułu korzystano ze wsparcia narzędzi opartych na sztucznej inteligencji – m.in. w zakresie porządkowania treści, analizy źródeł, przyspieszenia redakcji i wyszukiwania źródeł Jednak wszelkie decyzje dotycząca treści, interpretacji i ostatecznej formy zostały podjęte przez człowieka.

Podziel się swoją opinią

Jeden komentarz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *