Pythonのfor文は、リストやタプルなどの順序付けられたデータ構造から要素を一つずつ取り出すために使用されます。しかし、時には要素だけでなく、その要素の位置(インデックス)も同時に取得したい場合があります。この記事では、Pythonのfor文を使ってインデックスを取得する方法について解説します。
Pythonのfor文とインデックス
Pythonのfor文では、range
関数を使ってループをするのが一般的です。そのrange
を使ってインデックスを取り出すことができます。
list = ['python', 'Hello', 'world']
for i in range(len(list)):
list_item = list[i]
print('{0}:{1}'.format(i, list_item))
上記のコードでは、len()
関数でリストの長さを取り出し、その分だけループを回します。その時の変数i
の値がインデックスとなりますので、for文内でそのインデックス番目の要素を取り出して別の変数に格納し、最後に一緒に出力しています。
enumerate関数の活用
range
を使った方法でもちゃんとインデックスを取り出せますが、少し読みづらいコードになってしまいます。そこでPythonには、スッキリとしたコードでインデックスを取り出すための関数が用意されています。それがenumerate
関数です。
list = ['python', 'Hello', 'world']
for i, j in enumerate(list):
print('{0}:{1}'.format(i, j))
enumerate
関数を使うと、要素のインデックスと要素を同時に取り出すことができます。インデックスが変数i
、要素が変数j
に格納されます。range
を使った方法と比べると行数が少なくスッキリとしていて、とても見やすいコードになっています。
まとめ
Pythonのfor文を使ってインデックスを取得する方法は、range
関数とenumerate
関数の2つがあります。どちらも有用ですが、enumerate
関数を使うとより簡潔で読みやすいコードになります。これらの方法を活用して、Pythonのfor文をより効果的に使いましょう。.