Python: zip() と enumerate() の組合せ

Python の基礎

日付:2025年2月17日

Pythonの組み込み関数zip()とenumerate()の組み合わせ方について、基本的な使い方から実用的な活用例までを詳しく解説します。複数のリストをインデックス付きで処理する便利なコード例を紹介。

目 次

はじめに

Python の zip()enumerate() は、それぞれ異なる目的で使われる組み込み関数ですが、
これらを組み合わせることで、複数のリストを同時にループ処理しながらインデックス付きで要素を取得 できます。

例えば、リストの要素を順番に処理しつつ、それぞれに インデックスを付与したい場合 などに役立ちます。

本記事では、zip()enumerate() の基本的な使い方から、
実際の活用例まで詳しく解説します。

zip() と enumerate() の基本的な使い方

zip() の基本

zip() 関数は、複数のリストやタプルなどの 対応する要素をペアにして処理 するために使います。

PYTHON
names = ["Alice", "Bob", "Charlie"] scores = [85, 92, 78] for name, score in zip(names, scores): print(f"{name}: {score}")

出力

Alice: 85 Bob: 92 Charlie: 78

enumerate() の基本

enumerate() 関数は、リストの各要素に インデックスを付与してループ処理 するために使います。

PYTHON
fruits = ["apple", "banana", "cherry"] for index, fruit in enumerate(fruits, start=1): print(f"{index}. {fruit}")

出力

1. apple 2. banana 3. cherry

zip() と enumerate() を組み合わせる

zip() + enumerate() でインデックスを付与

zip()enumerate() を組み合わせることで、複数のリストを対応させながら、インデックス付きで処理 できます。

PYTHON
names = ["Alice", "Bob", "Charlie"] scores = [85, 92, 78] for index, (name, score) in enumerate(zip(names, scores), start=1): print(f"{index}. {name}: {score}")

出力

1. Alice: 85 2. Bob: 92 3. Charlie: 78

📌 ポイント

  • zip(names, scores)ペアを作成
  • enumerate() を使って インデックスを追加

リスト内包表記と組み合わせる

PYTHON
names = ["Alice", "Bob", "Charlie"] scores = [85, 92, 78] summary = [f"{i}. {name}: {score}" for i, (name, score) in enumerate(zip(names, scores), start=1)] print(summary)

出力

['1. Alice: 85', '2. Bob: 92', '3. Charlie: 78']

📌 ポイント

  • enumerate(zip(...), start=1)番号付きのリストを作成

まとめ

Python の zip()enumerate() を組み合わせることで、

  • 複数のリストを同時に処理しながらインデックスを付与できる
  • リスト内包表記と組み合わせることで、簡潔なコードが書ける

リストや辞書を扱う際に便利なので、ぜひ活用してみてください。