zip списки

Одно из главных преимуществ Python — это большой набор инструментов для работы с его типами данных. При работе с несколькими списками иногда необходимо проходить по ним в цикле и выполнять некоторые операции на основе значений всех списков. Это можно сделать, проходя по индексам и затем обращаясь к элементам, или используя встроенную функцию zip.
heights = [180, 190, 178]
weights = [89, 92, 77]

for i in range(len(heights)):
    h, w = heights[i], weights[i]
    print(h, '=>', w)
heights = [180, 190, 178]
weights = [89, 92, 77]

for h, w in zip(heights, weights):
    print(h, '=>', w)
Функция zip создаёт кортежи из элементов переданных ей списков. Она может обрабатывать произвольное количество списков. Таким образом, мы можем использовать zip(list1, list2, list3, ..., listn). Она создаст кортежи, каждый из которых содержит n элементов, если в zip передано n списков.
Обратите внимание, что объединение выполняется до длины самого короткого списка. Поэтому, если мы предоставим два списка, где один короче другого, последние лишние элементы второго будут проигнорированы.
notion image
Если мы хотим быть строгими и не допускать усечения более длинных списков, мы можем указать Python выбросить ошибку в таком случае, предоставив дополнительный аргумент strict=True:
heights = [180, 190]
names = ['Bob', 'Liza', 'Anna']

for h, name in zip(heights, names, strict=True):
    print(name, '=>', h)
# ValueError: zip() argument 2 is longer than argument 1

Задача

Ввод содержит 3 списка, каждый на отдельной строке. Элементы списков разделены пробелом. Гарантируется, что списки имеют одинаковое количество элементов.
Программа должна вывести новый список, содержащий произведение этих 3 списков.
Ввод
Вывод
1 2 3 4 5 6 1 1 1
4 10 18
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue