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

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

Ответ

В контексте написания автотестов на Python я постоянно использую оба типа данных для разных целей.

Список (list):

  • Назначение: Упорядоченная коллекция элементов. Порядок добавления сохраняется.
  • Доступ: По целочисленному индексу (начинается с 0).
  • Использование в тестах: Хранение последовательностей (например, порядка шагов теста, набора ожидаемых значений в определенном порядке).
    test_steps = ['open_page', 'login', 'check_dashboard']
    expected_items = ['Profile', 'Settings', 'Logout']
    assert actual_items[0] == expected_items[0]  # Проверка первого элемента

Словарь (dict):

  • Назначение: Неупорядоченная (до Python 3.7) коллекция пар ключ-значение. Ключи должны быть уникальными и хешируемыми.
  • Доступ: По ключу (строка, число, кортеж).
  • Использование в тестах: Хранение тестовых данных, конфигураций, параметров запросов API, где нужна быстрая выборка по имени.
    test_user = {
        'username': 'test_user_1',
        'email': 'test@example.com',
        'is_active': True
    }
    api_payload = {
        'method': 'POST',
        'endpoint': '/api/v1/login',
        'json': test_user
    }
    # Быстрый доступ к значению по ключу
    assert response.json()['user']['username'] == test_user['username']

Ключевое отличие: Списки для упорядоченных последовательностей, словари — для ассоциативных массивов с быстрым поиском по ключу.