Особенности словарей
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 True2.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?
