CodeGym /Kursy /Python SELF PL /Praca ze słownikiem

Praca ze słownikiem

Python SELF PL
Poziom 11 , Lekcja 2
Dostępny

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'}
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION