Списки разной длины: a = ['u1', 'u2', 'u3'] и b = [10, 20]. Код: pairs = []; затем for x in zip(a, b):; внутри pairs.append(x). Сколько элементов будет в pairs?

A3: zip повторит последний элемент короткой последовательности до длины более длинной
B1: zip создаёт только одну пару из самых первых элементов входных последовательностей
C0: при разной длине входных последовательностей zip возвращает пустой результат
D2: zip останавливается на самой короткой последовательности, лишний элемент 'u3' отброшен
Правильный ответ. zip() останавливается на самой короткой последовательности.

Разбор

zip(a, b) сформирует пары только для первых двух элементов: ('u1', 10) и ('u2', 20). Элемент 'u3' не попадёт в результат, потому что в b нет третьего значения. Если нужно обработать все элементы и заполнить пропуски, используется itertools.zip_longest, который дополняет короткую последовательность до длины самой длинной.

Проверь себя · 1/3разбор после ответа
В каком случае обычно уместнее выбрать цикл while, а не for?
Тренировать Python в Telegram

Ещё вопросы по теме «Циклы и условия»