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)のようにすることができます。zipn個のリストを渡せば、それぞれn個の要素を含むタプルが生成されます。
ただし、最も短いリストの長さまで要素をまとめることに注意してください。したがって、もし一方が他方より短い2つのリストを渡した場合、長い方のリストの余分な要素は無視されます。
notion image
もしこれに厳密になり、長いリストが切り捨てられることを許したくない場合は、追加の引数strict=Trueを指定することで、Pythonにエラーを投げさせることができます:
heights = [180, 190]
names = ['Bob', 'Liza', 'Anna']

for h, name in zip(heights, names, strict=True):
    print(name, '=>', h)
# ValueError: zip() の引数2が引数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