Listas zip

Uma das maiores vantagens do Python é o vasto conjunto de ferramentas que oferece para trabalhar com os seus tipos de dados. Ao trabalhar com várias listas, por vezes é necessário percorrê-las e realizar algumas operações baseadas nos valores de todas as listas. Isto pode ser feito iterando sobre índices e depois acedendo aos elementos, ou utilizando a função incorporada 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)
A função zip cria tuplas a partir dos elementos das listas passadas para ela. Pode lidar com um número arbitrário de listas. Assim, podemos ter zip(list1, list2, list3, ..., listn). Irá criar tuplas, cada uma contendo n elementos se houver n listas passadas para o zip.
Note que ela faz o zip dos elementos até à lista mais curta. Portanto, se fornecermos duas listas onde uma é mais curta que a outra, os últimos elementos extra da segunda serão ignorados.
notion image
Se quisermos ser rigorosos e não permitir o corte das listas mais longas, podemos dizer ao Python para lançar um erro se isso acontecer, fornecendo um argumento adicional 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

Desafio

O input contém 3 listas, cada uma em uma linha separada. Os elementos das listas estão separados por um espaço. É garantido que as listas têm o mesmo número de elementos.
O programa deve imprimir uma nova lista que contém o produto dessas 3 listas.
Entrada
Saída
1 2 3 4 5 6 1 1 1
4 10 18
 

Constraints

Time limit: 1 seconds

Memory limit: 512 MB

Output limit: 1 MB

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