# リストの要素とインデックスを取得するenumerate()の使い方
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