目次
はじめに
Pythonを使っていると、リストやタプルなどのイテラブル(反復可能)なデータを処理することがよくあります。その際、ループの中で「インデックス」と「要素」の両方を扱いたい場面が多くあります。
そんなときに便利なのが enumerate
関数です。本記事では、enumerate
関数の基本構文から、実際の使用例、さらに応用的な使い方まで徹底解説します。
enumerate関数とは?
enumerate
関数は、リストやタプルなどのイテラブルなオブジェクトをループ処理する際に「インデックス」と「要素」を同時に取得できる便利な関数です。通常の for
ループでは、インデックスを取得するために range(len(リスト))
を使うことが多いですが、enumerate
を使うことでより簡潔で可読性の高いコードを書くことができます。
enumerate関数の基本構文
enumerate
関数の基本的な書き方は以下の通りです。
enumerate(iterable, start=0)
iterable
:リストやタプルなどのイテラブルオブジェクトstart
(省略可):カウントを開始する番号(デフォルトは0
)
基本的な使用例
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)
実行結果
0 apple
1 banana
2 cherry
enumerate関数の使用例
インデックスと要素を取得する基本的な使い方
以下のように、通常の for
ループと比べて enumerate
を使うことで、より簡潔にインデックスを取得できます。
names = ["Alice", "Bob", "Charlie"]
for index, name in enumerate(names, start=1):
print(f"{index}: {name}")
実行結果
1: Alice
2: Bob
3: Charlie
リストの要素を変更する場合
リスト内の要素を更新するときも、enumerate
を使うと簡潔に書けます。
numbers = [10, 20, 30]
for index, num in enumerate(numbers):
numbers[index] = num * 2
print(numbers)
実行結果
[20, 40, 60]
enumerate関数の応用例
条件付きで特定の要素を処理する
特定の条件に一致する要素だけ処理したい場合、enumerate
を活用できます。
words = ["apple", "banana", "cherry", "date"]
for index, word in enumerate(words):
if "a" in word:
print(f"{index}: {word} contains 'a'")
実行結果
0: apple contains 'a'
1: banana contains 'a'
enumerate
と辞書の組み合わせ
enumerate
を使って辞書を作成することもできます。
items = ["pen", "notebook", "eraser"]
item_dict = {index: item for index, item in enumerate(items, start=1)}
print(item_dict)
実行結果
{1: 'pen', 2: 'notebook', 3: 'eraser'}
まとめ
enumerate
関数を使うことで、ループ処理を簡潔かつ可読性の高いコードにすることができます。
enumerate
は「インデックス」と「要素」を同時に取得できるenumerate(iterable, start=0)
の形で使用する- ループ処理の可読性向上やリストの更新、辞書作成など様々な場面で役立つ
Pythonのコーディングをより効率的にするために、ぜひ enumerate
を活用してみてください!