enumerate と zip の組み合わせ

一言まとめ

インデックスと複数系列を同時に回すなら enumerate(zip(...)) で足りる。アンパックは i, (a, b) の形で受ける。

作成 · 更新 · #python#iteration
目次 2 sections
  1. 01 関連
  2. 02 更新履歴

インデックスと複数系列を同時に回したいとき、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 30

start=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 を補う

同じトピック — Python