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

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

Ответ

В контексте тестирования на Python важно понимать различия между встроенным списком (list) и массивом из модуля array или numpy.array.

Список (list):

  • Универсальная, изменяемая коллекция.
  • Может хранить элементы разных типов (числа, строки, другие списки, объекты).
  • Идеален для хранения разнородных данных, например, результатов тестов или конфигураций.

Массив (array.array):

  • Требует однотипных элементов (задается кодом типа, например 'i' для целых чисел).
  • Более эффективен по памяти и скорости для числовых операций.

Пример в тестовом сценарии:

import array

# Список для хранения разнородных данных тест-кейса
test_case_data = ["TC_001", "Login", True, ["user", "pass"]]

# Массив для хранения серии замеров производительности (только числа)
performance_metrics = array.array('f', [12.5, 11.8, 13.1, 12.9])  # Тип 'f' — float

# NumPy массив для сложных математических проверок (например, в нагрузочном тестировании)
import numpy as np
response_times = np.array([100, 150, 120, 200], dtype=np.int32)

Когда что использовать:

  • list — для большинства задач: хранения ожидаемых/фактических результатов, параметров тестов, путей.
  • array.array — редко, только если критична экономия памяти с простыми типами.
  • numpy.array — для анализа больших объемов числовых данных (метрики, графики нагрузки).