【Python】enumerate()関数でリストの要素とインデックスを取得!サンプルコード付き!

enumerate()関数を使うことで、リストやタプルなどの要素にインデックスをつけて表示することができます。
その為、要素を取り出した場合に「この要素は何番目の要素なのか」を確認することができます。

今回はenumerate()関数を使ってリストの要素とインデックスを取得する方法について解説していきます。

enumerate()関数とは

enumerate()関数とは、リストを反復処理しているときに要素のインデックスを取得することができます。
反復可能なオブジェクト(ゼロ以上)を受け取り、それらをタプルに集約して返します。

enumerate()関数の書き方

enumerate()関数の構文は下記になります。

パラメータ

enumerate()関数は2つのパラメーターを取ります。

リストなど
反復をサポートするシーケンス、イテレータ、またはオブジェクト
開始値
この数からカウントを開始します。
もし開始値が省略されると、開始は0と見なされます。

戻り値

カウンターを要素に追加して返します。
返されるオブジェクトは列挙オブジェクトです。

enumerate()関数を使ったサンプルコード

出力結果

(0, ‘ゴリラ’)
(1, ‘ライオン’)
(2, ‘ぞう’)

リストの要素にそれぞれインデックスが付いたリストが作成されました。

enumerate()関数の基本的な使い方

インデックスを取得

enumerate()関数を使ってインデックスを取得します。
まずはリストでインデックスを取得してみます。

リストの例

出力結果

[(0, ‘バナナ’), (1, ‘リンゴ’), (2, ‘イチゴ’), (3, ‘メロン’)]
[(0, 1), (1, 2), (2, 3), (3, 4)]

インデックス付きのリストが作成されました。

続いて、タプルでインデックスを取得してみます。

タプルの例

出力結果

((0, ‘バナナ’), (1, ‘リンゴ’), (2, ‘イチゴ’), (3, ‘メロン’))
((0, 1), (1, 2), (2, 3), (3, 4))

インデックス付きのタプルが作成されました。

文字列の文字を取得

enumerate()関数は文字列の文字を取得することもできます。

出力結果

インデックスは 0 文字は H
インデックスは 1 文字は e
インデックスは 2 文字は l
インデックスは 3 文字は l
インデックスは 4 文字は o
インデックスは 5 文字は W
インデックスは 6 文字は o
インデックスは 7 文字は r
インデックスは 8 文字は l
インデックスは 9 文字は d

インデックスごとに文字列の文字を取得することができました。

多重のオブジェクトを取得

enumerate()関数で多重リストや多重タプルなどの多重のオブジェクトをインデックスごとに取得することができます。

リストの例

出力結果

[(0, (‘山田’, 20)), (1, (‘鈴木’, 30)), (2, (‘木本’, 40))]

このようにリストの中にあるリストの要素をインデックスとまとめて取得して表示することができます。

続いて、リストの中にあるタプルの要素をインデックスとまとめて表示してみます。

タプルの例

出力結果

((0, (‘山田’, 20)), (1, (‘鈴木’, 30)), (2, (‘木本’, 40)))

このようにリストの中にあるタプルの要素をインデックスとまとめて取得して表示することができます。

インデックスをずらして取得

開始値を設定することでインデックスの取得の開始をずらすことができます。

リストの例

出力結果

[(3, ‘バナナ’), (4, ‘リンゴ’), (5, ‘イチゴ’), (6, ‘メロン’)]

開始値を3に設定することでインデックスの取得の開始が3からになりました。

続いて、タプルの場合もみてみましょう。

タプルの例

出力結果

((4, ‘バナナ’), (5, ‘リンゴ’), (6, ‘イチゴ’), (7, ‘メロン’))

開始値を4に設定することでインデックスの取得の開始が4からになりました。

for文でインデックスを取得

for文と組み合わせることでもインデックスの取得が可能になります。

出力結果

(1, ‘山田’)
(2, ‘鈴木’)
(3, ‘木本’)
(1, 20)
(2, 30)
(3, 40)
インデックスは 1 名前は 山田 年齢は 20
インデックスは 2 名前は 鈴木 年齢は 30
インデックスは 3 名前は 木本 年齢は 40

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し