Словари: данные с ключами
Список хранит элементы с числовыми индексами: 0, 1, 2... Но часто удобнее обращаться к данным по имени, а не по номеру. Для этого существуют словари.
Аналогия: словарь, это картотека
В картотеке каждая карточка лежит под именем. Хочешь найти "Иванов Алексей", ищешь по имени, а не перебираешь все карточки подряд.
Словарь в Python: каждый элемент, это ключ (имя) и значение. Ключ, уникальный идентификатор, значение, данные.
Как создать словарь
# Пустой словарь
empty = {}
# Словарь с данными
user = {
"name": "Алекс",
"age": 25,
"city": "Москва",
"is_active": True
}
Доступ к значениям
user = {"name": "Алекс", "age": 25, "city": "Москва"}
print(user["name"]) # Алекс
print(user["age"]) # 25
# Безопасный доступ, не выдаст ошибку если ключа нет
print(user.get("email")) # None
print(user.get("email", "нет")) # нет
Изменение словаря
user = {"name": "Алекс", "age": 25}
# Изменить значение
user["age"] = 26
# Добавить новую пару
user["email"] = "alex@example.com"
# Удалить ключ
del user["email"]
print(user) # {'name': 'Алекс', 'age': 26}
Перебор словаря
profile = {"name": "Алекс", "age": 25, "city": "Москва"}
# Перебрать все пары ключ-значение
for key, value in profile.items():
print(f"{key}: {value}")
# Результат:
# name: Алекс
# age: 25
# city: Москва
Реальный пример: хранение данных о пользователях
users = [
{"name": "Алекс", "age": 25, "city": "Москва"},
{"name": "Мария", "age": 30, "city": "СПб"},
{"name": "Дмитрий", "age": 22, "city": "Казань"},
]
# Найти пользователей старше 24 лет
for user in users:
if user["age"] > 24:
print(f"{user['name']} из {user['city']}")
# Алекс из Москвы
# Мария из СПб
Список словарей, один из самых распространённых паттернов в Python. Именно так выглядят данные, которые приходят из API или базы данных.
💡 Главная мысль: Словарь, это набор пар "ключ: значение". Ключ, это имя, по которому ты обращаешься к данным. Это намного удобнее числовых индексов когда данные имеют смысл ("name", "age") а не просто порядок.