Python3 enumerate() 関数

Python3 内置函数Python3 組み込み関数


enumerate()Pythonで反復可能オブジェクトを走査する際に、インデックスと値を同時に取得するための組み込み関数です。

使い方enumerate()インデックス(位置)と要素自体を同時に簡単に取得でき、追加のカウンタ変数を避けることができます。

単語の意味: enumerate「列挙」という意味で、一つ一つ挙げていくことを表します。


基本構文とパラメータ

構文形式

enumerate(iterable, start=0)

パラメータの説明

  • パラメータ iterable:
    • 型: イテラブル
    • 説明: 列挙対象のイテラブル。
  • パラメータ start(オプション):
    • 型: 整数
    • 説明: インデックスの開始値。デフォルトは 0。

関数の説明

  • 戻り値: enumerate オブジェクト(イテレータ)を返します。
  • 出力: 各反復で (index, value) タプルを返します。

例

例1:基本の使い方

例

# 基本的な enumerate の使い方
fruits = ["リンゴ", "バナナ", "オレンジ"]

# インデックスと値を取得
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

# デフォルトは0から
print("---")
for index, fruit in enumerate(fruits):
    print(fruit)

予想される実行結果:

0: 苹果
1: 香蕉
2: 橙子
---
0: 苹果
1: 香蕉
2: 橙子

コード解説:

  1. enumerate は (インデックス, 値) のタプルを返します。
  2. デフォルトのインデックスは 0 から始まります。

例2:開始インデックスの指定

例

# 1から番号を付ける
fruits = ["リンゴ", "バナナ", "オレンジ"]

for i, fruit in enumerate(fruits, start=1):
    print(f"{i}番目の果物: {fruit}")

# 10から始める
print("---")
for i, fruit in enumerate(fruits, start=10):
    print(f"インデックス {i}: {fruit}")

予想される実行結果:

第1个水果: 苹果
第2个水果: 香蕉
第3个水果: 橙子
---
索引 10: 苹果
索引 11: 香蕉
索引 12: 橙子

start パラメータで開始インデックスを指定できます。

例3:リストへの変換

例

# リストに変換
fruits = ["リンゴ", "バナナ", "オレンジ"]
result = list(enumerate(fruits))
print(result)  # 出力: [(0, 'リンゴ'), (1, 'バナナ'), (2, 'オレンジ')]

# 辞書に変換(値が文字列の場合)
result = dict(enumerate(fruits))
print(result)  # 出力: {0: 'リンゴ', 1: 'バナナ', 2: 'オレンジ'}

# リスト内包表記と組み合わせる
squares = [x**2 for x in range(5)]
indexed_squares = [(i, v) for i, v in enumerate(squares)]
print(indexed_squares)  # 出力: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]

予想される実行結果:

enumerate は簡単にリストや辞書に変換できます。

例4:実際の応用

例

# 要素のインデックスを検索
fruits = ["リンゴ", "バナナ", "オレンジ", "バナナ", "リンゴ"]
target = "バナナ"

for index, fruit in enumerate(fruits):
    if fruit == target:
        print(f"インデックス {index} で {target} を見つけました")
        break

# 条件と組み合わせてすべての一致項目を検索
print("\nすべてのバナナの位置:)
for index, fruit in enumerate(fruits):
    if fruit == "バナナ":
        print(index, end=" ")  # 出力: 1 3

# 文字列内の文字位置を検索
text = "hello"
for i, c in enumerate(text):
    print(f"'{c}' は位置 {i} にあります")

予想される実行結果:

enumerate は、検索や置換などインデックスが必要な場面でよく使われます。

例5:辞書との組み合わせ

例

# 辞書の enumerate
person = {"name": "Tom", "age": 20, "city": "Beijing"}

# 辞書のキーと値のペアを走査する(items が必要)
for index, (key, value) in enumerate(person.items()):
    print(f"{index}: {key} = {value}")

# 番号付きの辞書を作成
items = ["a", "b", "c"]
numbered = {i+1: v for i, v in enumerate(items)}
print(numbered)  # 出力: {1: 'a', 2: 'b', 3: 'c'}

予想される実行結果:

enumerate を辞書と組み合わせて使用する場合は、items() メソッドを使用する必要があります。


Python3 内置函数Python3 組み込み関数

その他の拡張