Pythonでは、forループを使用してデータの集合から順番にデータを取り出すことができます。しかし、時々、データだけでなくそのデータのインデックスも取得したい場合があります。この記事では、Pythonのforループでデータのインデックスを取得する方法とその応用について説明します。

リストを使ったfor文でインデックスを取得する

Pythonのfor文では、リストやタプルを使うfor文では、そのインデックスを利用したい時があります。そこで、Pythonのfor文には取り出している要素のインデックスを取り出す方法が用意されています。

rangeを使った方法

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))

この方法でもちゃんとインデックスを取り出せます。しかし、少し読みづらいコードになってしまいますね。

enumerateを使った方法

さきほどはrangeを使ってインデックスを取り出しましたが、とても読みづらいコードになってしまいました。そこでPythonには、スッキリとしたコードでインデックスを取り出すための関数が用意されています。それがenumerateです。

list = ['python', 'Hello', 'world']
for i, j in enumerate(list):
    print('{0}:{1}'.format(i, j))

enumerate関数を使うと、要素のインデックスと要素を同時に取り出す事が出来ます。インデックスが変数1、要素が変数2に格納されます。rangeを使った方法と比べると行数が少なくスッキリとしていて、とても見やすいコードになっています。

まとめ

Pythonのforループでインデックスを取得する方法は、range関数を使う方法とenumerate関数を使う方法の2つがあります。どちらの方法も有用ですが、コードの可読性を考慮すると、enumerate関数を使う方法が推奨されます。これらの方法を理解し、適切に使用することで、Pythonプログラミングの幅が広がります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です