Сложение array и list в Python
@python_quizРазберем этот квиз
Коротко: что делает код

Попробуем понять поведение и почему оно отличается от добавления в обычный list.
Ключевые отличия: array vs list
- array из модуля
array— это упрощённый массив чисел, привязанный к одному typecode (например,'i'для целых). - list — общий контейнер произвольных Python-объектов.
- Операция
+дляarrayреализована так, чтобы складывать только другиеarrayс тем же typecode. Сложение с list не поддерживается и приведёт к исключению.
Что произойдёт при запуске
Выполнение приведённого кода вызовет исключение типа TypeError. Пример трассировки:

Пример ошибки (формат может немного отличаться в зависимости от версии Python):

Причина: метод сложения (и операции вроде += для array) ожидает другой array совместимого typecode.
Правильные способы добавить элемент/объединить
Ниже — варианты, которые работают, и примеры:
1) Добавить один элемент — append

2) Объединить с другим array

3) Расширить array последовательностью (list тоже подойдёт, если элементы совместимы)

4) Преобразовать в list для операций с list, затем при необходимости вернуть в array

Анализ вариантов ответов (коротко)
- Вариант с выводом array('i', [1, 2, 3, 4]) — описывает поведение при корректной конкатенации с другим array, но не соответствует работе с list.
- Вариант с выводом [1, 2, 3, 4] — соответствует результату при преобразовании в list и сложении, но не для исходного выражения.
- Вариант о создании нового списка без вывода — неверен: выражение не создаёт silently новый список, а вызывает ошибку при попытке сложить несоответствующие типы.
- Вариант про возникновение
TypeError— соответствует фактическому поведению при попытке сложитьarrayиlist.
Вывод
Модуль array строг по типам: операции вроде + требуют другого array с тем же typecode. Для добавления элементов используйте append, extend или сначала преобразуйте в list — в зависимости от задачи. Это помогает избежать неожиданных исключений и сохраняет ожидаемую семантику при работе с числовыми массивами.