2.1 Pobieranie liczby elementów
W Python do uzyskania liczby elementów w słowniku używa się wbudowanej funkcji len()
. Ta funkcja zwraca liczbę par klucz-wartość w słowniku. No albo liczbę kluczy, jeśli wolisz.
Przykład użycia funkcji:
person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements) # Wydruk: 3
W tym przykładzie mamy słownik person
z trzema elementami. Funkcja len(person)
zwraca liczbę elementów w słowniku, która wynosi 3.
Sprawdzanie pustoty słownika
Możesz użyć funkcji len()
do sprawdzenia, czy słownik jest pusty. Jest to przydatne w warunkach i pętlach.
empty_dict = {}
print(len(empty_dict)) # Wydruk: 0
person = {"name": "Alice", "age": 25, "city": "New York"}
if len(person) > 0:
print("Słownik nie jest pusty")
else:
print("Słownik jest pusty")
Słownik z zagnieżdżonymi strukturami
Funkcja len()
uwzględnia tylko liczbę kluczy na najwyższym poziomie, niezależnie od tego, co jest tam przechowywane jako wartości.
complex_dict = {
name: "Alice",
details: {
age: 25,
city: "New York"
},
hobbies: ["reading", "traveling"]
}
print(len(complex_dict)) # Wydruk: 3
W tym przykładzie mamy słownik z zagnieżdżonymi strukturami danych. len(complex_dict)
zwraca 3, ponieważ na najwyższym poziomie są trzy klucze: "name", "details" i "hobbies".
len()
ignoruje klucze wewnątrz zagnieżdżonych struktur danych, takich jak "age" i "city" wewnątrz słownika "details", ponieważ len()
liczy tylko klucze z najwyższego poziomu. Jeśli potrzebujesz policzyć liczbę wszystkich elementów, w tym zagnieżdżonych struktur, musisz użyć metody rekurencyjnej. Ale o tym nie dzisiaj.
2.2 Określenie typu
Funkcja type()
w Python jest używana do określenia typu obiektu. Przy pracy ze słownikami type()
pozwala określić, że obiekt jest instancją klasy dict
. Może to być przydatne w różnych sytuacjach, na przykład do sprawdzania typu danych przed wykonywaniem operacji na słowniku.
Przykłady użycia:
Sprawdzanie typu obiektu
person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person)) # Wydruk: <class 'dict'>
W tym przykładzie tworzymy słownik person
i używamy type
do określenia jego typu. Funkcja zwraca <class 'dict'>
, wskazując, że person
jest słownikiem.
Warunkowe sprawdzanie typu danych
Funkcja type()
może być użyta do sprawdzania typu danych w wyrażeniach warunkowych, co pozwala wykonywać określone operacje tylko dla obiektów typu dict
.
data = {"name": "Alice", "age": 25, "city": "New York"}
if type(data) is dict:
print("To jest słownik.")
else:
print("To nie jest słownik.")
W tym przykładzie wyrażenie warunkowe sprawdza, czy data
jest słownikiem, i wykonuje odpowiedni kod.
Funkcja type()
może być użyta wewnątrz funkcji użytkownika do sprawdzania typu argumentów, co pozwala zagwarantować, że funkcja przetwarza poprawny typ danych.
Przykład:
def process_data(data):
if type(data) is dict:
print("Przetwarzanie słownika...")
# Wykonywanie operacji na słowniku
else:
print("Błąd: oczekiwano słownika.")
data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)
W tym przykładzie funkcja process_data
sprawdza, czy argument data
jest słownikiem, i wykonuje odpowiednie operacje tylko dla słowników.
2.3 Pobieranie elementu
Praca z elementami słownika jest podobna do pracy z listą lub krotką — również używamy nawiasów kwadratowych. Tylko zamiast indeksu elementu w nawiasach trzeba podać klucz. Kluczem słownika może być dowolny niemodyfikowalny element: string, liczba lub na przykład krotka.
słownik[klucz]
Przykład:
person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name) # Wydruk: Alice
Jeśli klucz nie istnieje, wystąpi błąd:
person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"] # wystąpi błąd KeyError: 'country'
Metoda get(key, def_value)
Metoda get()
pozwala na bezpieczne pobieranie wartości na podstawie klucza. Jeśli klucz nie istnieje, metoda zwraca wartość domyślną (None
, jeśli wartość domyślna nie jest podana). To zapobiega wystąpieniu wyjątku KeyError
.
person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age) # Wydruk: 25
country = person.get("country", "USA")
print(country) # Wydruk: USA
Drugim parametrem w metodzie get()
można przekazać wartość, którą należy zwrócić, jeśli nie ma danego klucza w słowniku.
Metoda setdefault()
działa podobnie do metody get()
, ale jeśli klucz nie istnieje w słowniku, metoda nie tylko zwraca wartość domyślną, ale dodaje do słownika nową parę klucz: wartość
.
person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city) # Wydruk: New York
print(person) # Wydruk: {'name': 'Alice', 'age': 25, 'city': 'New York'}
GO TO FULL VERSION