Słowniki¶
Słowniki w języku Python są strukturą dynamiczną służącą do przechowywania par klucz-wartość.
Inicjalizacja słownika¶
Pusty słownik¶
W celu utworzenia pustego słownika wystarczy jako wartość zmiennej przypisać dict()
.
Inicjalizacja danymi początkowymi¶
Gdy tworzymy słownik, możemy wypełnić go początkowymi wartościami. W tym celu używamy notacji nawiasów klamrowych oraz par klucz: wartość
.
Generowanie słownika¶
Zawartość słownika możemy wygenerować automatycznie używając tzw. dictionary comprehension.
Możemy także użyć instrukcji warunkowej, by uwzględnić jedynie część elementów.
Podstawowe operacje¶
Jak to ze strukturami danych bywa, możemy nie tylko je tworzyć, ale także operować na ich zawartości, co krótko omówimy.
Odczytanie wartości pod zadanym kluczem¶
W celu odczytania wartości zapisanej pod zadanym kluczem używamy notacji nawiasów kwadratowych.
Zmiana wartości pod zadanym indeksem¶
Poszczególne elementy słownika możemy traktować podobnie do zmiennych, możemy więc na nich przeprowadzać standardowe operacje, w szczególności modyfikację wartości.
Należy jednak zwrócić uwagę na to, że wartość, na której operujemy w słowniku, musi najpierw istnieć. Jeśli nie, to wystąpi błąd. Istnienie wartości w słowniku możemy sprawdzić instrukcją warunkową.
Wypisanie słownika¶
W celu wypisania całego słownika wystarczy skorzystać z wbudowanej funkcji print
.
Jeżeli chcemy wypisać wyłącznie klucze, możemy skorzystać z metody keys
.
Podobnie możemy postąpić z wartościami.
Pobranie długości słownika¶
Długość słownika, tzn. liczbę elementów (kluczy) zapisanych w słowniku, możemy pobrać za pomocą funkcji len
, jako parametr podając słownik, którego długość chcemy poznać.
Modyfikacja zawartości słownika¶
Ponieważ słownik jest strukturą dynamiczną, możemy do niego swobodnie dodawać nowe elementy, a także je usuwać.
Dodanie elementu do słownika¶
W celu dodania nowego elementu do słownika, wystarczy przypisać wartość do nowego klucza korzystając z notacji nawiasów kwadratowych.
Usunięcie klucza ze słownika¶
Aby usunąć wybrany klucz ze słownika (i przypisaną do niego wartość) możemy skorzystać z funkcji del.
Przechodzenie po słowniku¶
Iteracja po elementach słownika¶
W celu przejścia po kolejnych elementach słownika możemy skorzystać z pętli for in
. W ten sposób przejdziemy po kluczach słownika. Jeżeli chcemy odczytać także wartości, możemy skorzystać z notacji nawiasów kwadratowych.
Alternatywnie możemy także przejść bezpośrednio po parach klucz-wartość korzystając z metody items
aby pobrać wszystkie elementy słownika w postaci krotek (tuple).
Słownik z wartością domyślną¶
Klasyczny słownik w Pythonie nie ma wartości domyślnej. Oznacza to, że jak spróbujemy się odwołać do klucza, który nie został do słownika dodany, to zakończy się to błędem.
Możemy jednak skorzystać ze struktury defaultdict
z biblioteki collections
. Ta struktura przyjmuje w konstruktorze funkcję, która będzie wykonywana w przypadku, gdy odwołamy się do nieistniejącego w słowniku klucza. Jako funkcję możemy podać np. int
. Wówczas domyślną wartością dla nieistniejącego klucza będzie zero. Podobnie byłoby np. z list
, wówczas domyślną wartością będzie pusta lista.