文法・環境 組み込み関数

【python】enumerate関数の使い方(forループでindexと要素を同時に取得)

pythonのenumerate関数の使い方について紹介します。

enumerate関数について基本的な使い方や注意点を、サンプルコードを交えながら紹介します。

この記事で分かること

  • enumerate関数とは
  • enumerate関数の基本的な使い方
  • enumerate関数で、forループでindexと要素を同時に取得
  • enumerate関数のindexを1から(0以外から)開始

スポンサーリンク

enumerate関数とは

はじめに、enumerate関数について簡単に説明します。

enumerate関数は、pythonにあらかじめ用意されている組み込み関数です。

そのため、importせずに使用することができます。

enumerate関数を用いると、イテラブルオブジェクト(リストやタプルなど)の要素と同時に、インデックスを取得できます

enumerate関数は、forループの中で使用されることが多いです。

forループ内でenumerate関数を使用するサンプルコードについても、本記事内で紹介していますので参考にしてみてください。

enumerate関数の基本的な使い方

enumerate関数の基本的な使い方について、紹介します。

enumerate関数の引数には、イテラブルオブジェクト(リスト、タプルなど)を指定します。

また、インデックスの始まりを0以外にしたい場合は、"start = 数値" で指定できます

なお、"start = 数値"  は省略可能です。

enumerate関数の書き方

enumerate( イテラブル, start = 数値 ) :

enumerate関数は、イテラブル(リストやタプルなど)の要素にインデックスを付与し、

イテラブルオブジェクトである " enumerateオブジェクト " を返します。

以下のサンプルコードで、enumerate関数の返り値を確認します。

### enumerate関数の返り値確認
fruits = ["Apple", "Banana", "Orange", "Mango", "Lemon"]

fruits_enumerate = enumerate(fruits)

print(fruits_enumerate)
# <enumerate object at 0x00000256D1687168>
print(list(fruits_enumerate))
# [(0, 'Apple'), (1, 'Banana'), (2, 'Orange'), (3, 'Mango'), (4, 'Lemon')]

>print(fruits_enumerate)

># <enumerate object at 0x00000256D1687168>

" enumerateオブジェクト " が返り値になっていることが確認できます。

>print(list(fruits_enumerate))

># [(0, 'Apple'), (1, 'Banana'), (2, 'Orange'), (3, 'Mango'), (4, 'Lemon')]

" enumerateオブジェクト "はそのままでは要素が確認できないため、list関数でリストに変換しています。

タプルの中に、インデックスと要素が格納されていることが分かるかと思います。

enumerate関数で、forループでindexと要素を同時に取得

次に、forループ内でenumerate関数を使用する方法について紹介します。

引数にイテラブルオブジェクト(リスト、タプルなど)を指定すると、インデックス, 要素を順番に取得できます

enumerate関数の書き方

for インデックス, 要素 in enumerate( イテラブル, start = 数値 ) :

~ for文の中身 ~

以下、for文との組合せのサンプルコードです。

enumerateの基本的な使い方になります。

### enumerateのサンプルコード
fruits = ["Apple", "Banana", "Orange", "Mango", "Lemon"]

for i, fruit in enumerate(fruits):
    print(i, fruit)
# 0 Apple
# 1 Banana
# 2 Orange
# 3 Mango
# 4 Lemon

enumerate関数を用いて、

リストである fruits から、インデックスと要素を取り出し、それぞれ変数 i と、変数 fruit に渡しています。

スポンサーリンク

enumerate関数のindexを1から(0以外から)開始

補足的な内容になります。

"start = 数値" を引数で指定することで、enumerate関数によって取り出されるインデックスの開始番号を変えることができます

以下、サンプルコードです。

### enumerate関数のインデックスの開始番号を1からにする
fruits = ["Apple", "Banana", "Orange", "Mango", "Lemon"]

for i, fruit in enumerate(fruits, start=1):
    print(i, fruit)
# 1 Apple
# 2 Banana
# 3 Orange
# 4 Mango
# 5 Lemon

まとめ

pythonのenumerate関数の使い方について紹介しました。

ループ内で、リストのインデックスと要素を同時に取得したいと思う場面は意外と多くあります。

ループ内の可読性向上のためにも、enumerate関数の基本的な使い方は抑えておくようにしましょう。

スポンサーリンク

-文法・環境, 組み込み関数
-,