Что вернёт list(zip([1, 2, 3], ['a', 'b']))?

AValueError: аргументы zip() имеют разную длину, функция требует одинакового размера
B[(1, 'a'), (2, 'b'), (3, '')]: недостающее значение второго аргумента дополняется пустой строкой
C[(1, 'a'), (2, 'b'), (3, None)]: недостающее значение второго аргумента дополняется значением None
D[(1, 'a'), (2, 'b')]: zip() останавливается на самом коротком аргументе, лишний элемент отбрасывается
Правильный ответ. zip() останавливается по самому короткому итерируемому объекту, лишние элементы остальных аргументов отбрасываются.

Разбор

Функция zip() объединяет элементы попарно и заканчивает работу, когда заканчивается самый короткий аргумент. Поэтому элемент 3 из первого списка не войдёт в результат, а исключение не выбрасывается. Если нужно дополнить недостающие значения, используют itertools.zip_longest(), которая подставляет None или указанное значение fillvalue.

Проверь себя · 1/3разбор после ответа
Что вернёт выражение "py" in "python" при выполнении в Python?
Тренировать Python в Telegram

Ещё вопросы по теме «Синтаксис и типы данных»