NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

Python の enumerate 関数について

enumerate 関数とは

要素の配列のインデックス*1と、要素を同時に取り出すことができます。

実行例

コード
tips = ['Network', 'Server', 'Security']
for i, j in enumerate(tips):
  print('{0}:{1}'.format(i, j))
出力結果
0:Network
1:Server   
2:Security 

解説

基本的な使い方

コードの記述方法は、以下のとおりです。

for 変数1, 変数2 in enumerate(リスト):
  print(‘{0}:{1}’.format(変数1, 変数2))

リストの要素を取り出し、変数 2 には要素の値変数 1 にはインデックス*2を代入します。
リストの要素が複数ある場合は、空になるまで繰り返し代入しつづけます。

文字列とインデックスを取り出す

以下の例では、「Network」「Server」「Security」の文字列を前から順番に取り出し、変数(var)に文字列を代入し、変数(i)にインデックスを代入しています。つまり、文字列だけでなく、インデックスを取り出したい場合に便利な関数です。

tips = ['Network', 'Server', 'Security']
for i, var in enumerate(tips):
  print(i, var)

出力結果

0 Network
1 Server   
2 Security 

応用的な使い方

全ての要素を取り出すまで、「メッセージ」を出力する例です。
if 文を組み合わせて、インデックスが 0 になるまで pint 処理を実行しています。

tips = ['Network', 'Server', 'Security']
for i, var in enumerate(tips):
    if i > 0:
        print('まだだ、まだ終わらんよ!')
    print(var)
print('終わりました。')

出力結果

Network
まだだ、まだ終わらんよ!
Server
まだだ、まだ終わらんよ!
Security
終わりました。

参考:TECHACADEMY マガジン

参考書籍

以上

*1:ある要素が list の中で何番目かを示すもの

*2:要素の番号