enumerate と zip の組み合わせ
一言まとめ
インデックスと複数系列を同時に回すなら enumerate(zip(...)) で足りる。アンパックは i, (a, b) の形で受ける。
インデックスと複数系列を同時に回したいとき、enumerate(zip(...)) で足ります。
names = ["ito", "sato", "kudo"]scores = [10, 20, 30]
for i, (name, score) in enumerate(zip(names, scores), start=1): print(i, name, score)# 1 ito 10# 2 sato 20# 3 kudo 30start=1 で番号の起点をずらせます。アンパックの括弧 (name, score) を忘れると、タプルのまま1変数に入ります。
zip は短い方の長さで止まり、余りは警告なしに捨てられます。長さ違いを検知したいなら zip(..., strict=True)(Python 3.10以降)、埋めたいなら itertools.zip_longest です。
関連
更新履歴
- 2026-06-20: 初版(memos から移行)
- 2026-10-09: 関連にネストした内包表記を追加
- 2026-10-09: タイトルを概念名に揃え、tags を補う