【Python入門】enumerate関数でインデックスと要素を取得,Python3

たとえば、文字列のインデックスを取得したいとき、
forループをまわせば、

>>> s = 'PythonCarnival'
>>> for item in s:
...     print(item, 'のインデックスは', offset)
...     offset += 1
... 
P のインデックスは 0
y のインデックスは 1
t のインデックスは 2
h のインデックスは 3
o のインデックスは 4
n のインデックスは 5
C のインデックスは 6
a のインデックスは 7
r のインデックスは 8
n のインデックスは 9
i のインデックスは 10
v のインデックスは 11
a のインデックスは 12
l のインデックスは 13

しかし、インデックスと要素を取得したければ、enumerate関数でもっとシンプルに簡単にできます

>>> s = 'PythonCarnival'
>>> for (offset, item) in enumerate(s):
...     print(item, 'のインデックスは', offset)
... 
P のインデックスは 0
y のインデックスは 1
t のインデックスは 2
h のインデックスは 3
o のインデックスは 4
n のインデックスは 5
C のインデックスは 6
a のインデックスは 7
r のインデックスは 8
n のインデックスは 9
i のインデックスは 10
v のインデックスは 11
a のインデックスは 12
l のインデックスは 13

リストを順番に処理する過程でenumerateは大活躍します。インデックスと要素の両方が必要になることはけっこうあります。
enumerateを使うとパイソニック(Pythonらしい)なコードに仕上がります。

シンプルで簡単です。

>>> words = ['Python', 'Django', 'Flask', 'Carnival', 'AI']
>>> for i,w in enumerate(words):
...     print(w, 'は', i, '番目です')
... 
Python は 0 番目です
Django は 1 番目です
Flask は 2 番目です
Carnival は 3 番目です
AI は 4 番目です

インデックスだけが必要な時は_(アンダーバー)を使います。

>>> words = ['Python', 'Django', 'Flask', 'Carnival', 'AI']
>>> for i, _ in enumerate(words):
...     print ('インデックスだけ→', i)
... 
インデックスだけ→ 0
インデックスだけ→ 1
インデックスだけ→ 2
インデックスだけ→ 3
インデックスだけ→ 4

こちらの書き方はおすすめされません。

>>> words = ['Python', 'Django', 'Flask', 'Carnival', 'AI']

>>> for i in range(len(words)):
...     print(words[i], 'は', i, '番目です')
... 
Python は 0 番目です
Django は 1 番目です
Flask は 2 番目です
Carnival は 3 番目です
AI は 4 番目です


>>> i = 0
>>> for w in words:
...     print(w, 'は', i, '番目です')
...     i += 1
... 
Python は 0 番目です
Django は 1 番目です
Flask は 2 番目です
Carnival は 3 番目です
AI は 4 番目です