python2.Xの記事を見つけてpython3.Xでも動作確認したので備忘録として書いてます
準備
list.py
a = ['あ','い','う','え','お']
b = ['か','き','く','け','こ']
例えばこういうリストがあったとする。
enumerate
enumerate.py
for i,ai in enumerate(a):
print(i,ai)
とすると
実行結果
0 あ
1 い
2 う
3 え
4 お
こんな感じになる
zip
zip.py
for ai, bi in zip(a, b):
print(ai, bi)
とすると
実行結果
あ か
い き
う く
え け
お こ
こんな感じ。ちなみに3つ以上のリストも同様にしてまとめられる。
enumerate & zip
enumerateとzipを同時に使いたいときに
error.py
for i, ai, bi in enumerate(zip(a, b)):
print(i, ai, bi)
このように書くとエラーを起こした。
実行結果
ValueError: not enough values to unpack (expected 3, got 2)
で、何か方法はないかと調べた結果、下のようにすれば良いらしい。
success.py
for i,(ai, bi) in enumerate(zip(a, b)): # zipのところを()で囲った
print(i, ai, bi)
実行結果
0 あ か
1 い き
2 う く
3 え け
4 お こ
参考