Особенности словарей
1. Основные особенности словарей
Ключи уникальны
В словаре не может быть одинаковых ключей. Если добавить ключ, который уже существует, его значение обновится:
d = {"a": 1, "b": 2}
d["a"] = 10
print(d) # {'a': 10, 'b': 2}
Ключи неизменяемы
Ключи могут быть числа, строки, кортежи, но не списки или словари:
d = {(1, 2): "tuple"} # допустимо
# d[[1, 2]] = "list" # TypeError
Неупорядоченность до Python 3.6
До Python 3.6 словари не гарантировали порядок элементов.
Начиная с Python 3.7, словари сохраняют порядок добавления элементов.
Быстрый доступ по ключу
Доступ к элементу по ключу происходит за O(1), что быстрее, чем поиск в списке.
Значения могут быть любыми
В словарь можно хранить числа, строки, списки, кортежи, другие словари, объекты:
d = {"num": 10, "list": [1,2], "dict": {"a": 1}}
Методы для безопасной работы
get()
— безопасное получение значенияsetdefault()
— добавляет ключ только если его нетpop()
иpopitem()
— удаление с возвратом значения
2. Примеры использования в автотестах
2.1 Обработка JSON/API
response = {"status": "ok", "data": {"id": 1, "name": "Alice"}}
assert response.get("status") == "ok"
2.2 Хранение сложных данных
users = {
"user1": {"password": "123", "active": True},
"user2": {"password": "456", "active": False}
}
assert users["user1"]["active"] is True
2.3 Фильтрация данных
users = [{"name": "Alice", "active": True}, {"name": "Bob", "active": False}]
active_users = [u for u in users if u.get("active")]
print(active_users) # [{'name': 'Alice', 'active': True}]
Last updated
Was this helpful?