🍉

enumerate() に 渡せる引数は最大2つ

に公開

エラー

for num, a, b, c in enumerate(num_ja, num_en, num_nl, start=1):

と記述を行ったところ、

for num, a,b,c in enumerate(num_ja,num_en,num_nl, start=1):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: enumerate() takes at most 2 arguments (4 given)
というエラーが出ました。

enumerate(iterable, start=0)

enumerateの使い方は、1つのリストだけを渡して、それにインデックスをつける関数なのに、私は、引数を4つも渡してしまっていました。

複数のリストを同時に使いたい場合

zip() と enumerate() を組み合わせて使うと出力結果のようになりました。

num_ja = ["いち", "に", "さん"]
num_en = ["one", "two", "three"]
num_nl = ["een", "twee", "drie"]

for i, (a, b, c) in enumerate(zip(num_ja, num_en, num_nl), start=1):
    print(i, a, b, c)

出力

1 いち one een  
2 に two twee  
3 さん three drie  

Discussion