Python、機械学習

【Python】enumerate関数で、リストのindex番号と中身の両方を取り出せる

Pythonのenumerate関数を使うと、リストのindex(インデックス)と中身の両方を取り出すことができます。

enumerateは英語で「列挙する」という意味です。

enumerate関数の使い方

ドラえもんに出てくる出木杉くんのとあるテストの結果をリストにします。

dekisugi_scores = [95, 100, 97, 94, 98]
dekisugi_scores

[95, 100, 97, 94, 98]

リストから点数だけを取り出す場合

for文を使って、このように取り出せます。

for score in dekisugi_scores:
    print(score)

0
100
97
94
98

リストからインデックス番号と点数の両方を取り出す場合

enumerate関数を使って、このように取り出します。インデックス番号、点数という順のタプルが得られます。

for score in enumerate(dekisugi_scores):
    print(score)

(0, 0)
(1, 100)
(2, 97)
(3, 94)
(4, 98)

インデックス番号と点数を別々に取り出す場合は、このように書きます。

for index, score in enumerate(dekisugi_scores):
    print(index)

0
1
2
3
4

for index, score in enumerate(dekisugi_scores):
    print(score)

0
100
97
94
98

応用的な使い方

このenumerate関数を使えば、いろいろと便利なコードが書けます。例えば、次のように、インデックス番号が3以上の場合に点数をprintする、というコードを書くことができます。

for index, score in enumerate(dekisugi_scores):
    if index >= 3:
        print(score)

94
98

まとめ

enumerate(リスト)とすることで、リストのインデックス番号と中身の両方を別々に取得することができます。なにかと使う場面があります。