# リストの要素とインデックスを取得するenumerate()の使い方

HomeFunctions

Pythonのenumerate()関数を使うと、forループの中でリスト(配列)などのイテラブルオブジェクトの要素と同時にインデックス番号(カウント、順番)を取得できます。

インデックスを取得して順番に並べ替えるなどのコードを書くときに便利です。

# enumerate()関数の例1

タプルをenumerate()オブジェクトに変換する例です。

    x = ('apple', 'banana', 'cherry')
    y = enumerate(x)

# enumerate()関数の定義及び使い方

enumerate()関数はコレクション(タプルなど)を取得し、enumerateオブジェクトとして返します。 enumerate()関数は、enumerateオブジェクトのキーとしてカウンタを追加します。

# enumerate()関数の書き方

enumerate(iterableオブジェクト(リスト、タプルなど), 開始番号)

# enumerate()関数の引数

iterableオブジェクト:必須。リスト、タプルなど。

開始番号:数値。初期値は0です。

# enumerate()関数の例2

通常のenumerate()関数の使い方です。初期値は0になります。

l = ['A', 'B', 'C']

for i, name in enumerate(l):
    print(i, name)
# 0 A
# 1 B
# 2 C

# enumerate()関数の例3

0以外の数値から開始したい場合は、enumerate()関数の第二引数に任意の開始数値を指定します。

1からはじめる場合。

l = ['A', 'B', 'C']

for i, name in enumerate(l,1):
    print(i, name)
# 1 A
# 2 B
# 3 C

# enumerate()関数の例4

enumerate()関数は、連番の文字列を作りたい場合に便利です。 forループで1から始めるためにi+1と書くより、enumerate()関数の第二引数で開始数値を指定したほうがスマートで可読性も高いと思います。

l = ['A', 'B', 'C']

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_A
# 002_B
# 003_C

HomeFunctions