Korzystanie z tablic asocjacyjnych

Python:
Korzystanie z tablic asocjacyjnych

Jak to zrobić:

Tworzenie słownika w Pythonie jest proste. Otaczasz pary klucz-wartość nawiasami klamrowymi {}, klucze i wartości oddzielone są dwukropkiem:

# Utwórz tablicę asocjacyjną (słownik)
my_dict = {"name": "Jan", "age": 30, "city": "New York"}
print(my_dict)

Wynik:

{'name': 'Jan', 'age': 30, 'city': 'New York'}

Dostęp do wartości za pomocą jej klucza jest prosty:

# Dostęp do wartości
print(my_dict["name"])

Wynik:

Jan

Dodawanie lub aktualizowanie elementów wykonuje się poprzez przypisanie wartości do klucza:

# Dodaj nową parę klucz-wartość
my_dict["email"] = "[email protected]"
# Zaktualizuj wartość
my_dict["age"] = 31
print(my_dict)

Wynik:

{'name': 'Jan', 'age': 31, 'city': 'New York', 'email': '[email protected]'}

Aby iterować przez elementy słownika:

# Iteracja przez pary klucz-wartość
for key, value in my_dict.items():
    print(f"{key}: {value}")

Wynik:

name: Jan
age: 31
city: New York
email: [email protected]

Zagłębienie się

Tablice asocjacyjne w Pythonie, czyli słowniki, zostały wprowadzone, aby zapewnić strukturę danych dla efektywnego dostępu do danych i ich manipulacji. W przeciwieństwie do sekwencji, które są indeksowane za pomocą zakresu liczb, słowniki są indeksowane za pomocą kluczy, które mogą być dowolnym typem niezmienialnym. Ten wybór projektowy sprawia, że słowniki są idealnie przystosowane do szybkich tabel wyszukiwań, gdzie klucze mapują na unikalne wartości.

Historycznie słowniki Pythona były implementowane przy użyciu tablicy haszującej, zapewniając, że średnia złożoność czasowa dla operacji wyszukiwania, wstawiania i usuwania to O(1). W Pythonie 3.6 i nowszych, słowniki utrzymują także kolejność wstawiania elementów, łącząc zalety tablicy haszującej z przewidywalnością kolejności wstawiania, widoczną w uporządkowanych strukturach danych.

Chociaż słowniki są niezwykle wszechstronne, w niektórych specjalnych przypadkach, alternatywy takie jak collections.defaultdict lub collections.OrderedDict (przed Pythonem 3.7) mogą być preferowane. defaultdict jest szczególnie przydatny, gdy potrzebny jest słownik zwracający domyślną wartość dla nieistniejących kluczy, co upraszcza pewne rodzaje logiki warunkowej. Jednak, przy ciągłym ulepszaniu i ewolucji Pythona, wbudowana klasa słownika często pozostaje pierwszym wyborem dla tablic asocjacyjnych ze względu na jej solidność i wygodę, którą oferuje od razu.