В чем разница между массивом (списком), словарем и множеством в Python?

«В чем разница между массивом (списком), словарем и множеством в Python?» — вопрос из категории Python, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В QA-автоматизации на Python выбор структуры данных напрямую влияет на читаемость и эффективность кода.

1. Список (list) — упорядоченная последовательность:

  • Сохраняет порядок добавления.
  • Позволяет дубликаты.
  • Использование в тестах: Хранение последовательности шагов, порядка проверок, списка ожидаемых значений.
    test_steps = ["open_browser", "navigate_to_url", "enter_credentials", "click_login"]
    expected_errors = ["Error 404", "Error 500", "Error 404"]  # Дубликаты допустимы

2. Множество (set) — неупорядоченная коллекция уникальных элементов:

  • Не гарантирует порядок.
  • Автоматически удаляет дубликаты.
  • Использование в тестах: Проверка уникальности (уникальные ID пользователей, теги), выполнение операций объединения/пересечения (сравнение групп прав).
    unique_user_ids = {12345, 67890, 12345}  # Станет {12345, 67890}
    actual_permissions = {"read", "write"}
    expected_permissions = {"read", "execute"}
    missing_perms = expected_permissions - actual_permissions  # Находит разницу

3. Словарь (dict) — неупорядоченное отображение «ключ-значение»:

  • Ключи уникальны и неизменяемы.
  • Обеспечивает быстрый доступ по ключу.
  • Использование в тестах: Хранение конфигурации (config['base_url']), представление JSON-ответов API, параметризация тестов.
    api_response = {
    "status": "success",
    "data": {"userId": 1, "username": "testUser"},
    "code": 200
    }
    # Быстрый доступ к полю ответа
    assert api_response["code"] == 200

Вывод: Используйте list для порядка, set для уникальности и операций с коллекциями, dict для структурированных данных и быстрого поиска по ключу.