【Python】for文にenumerate()関数を使ってリスト等の要素とインデックスを取得する!
for文にenumerate()関数を使用することでリスト等の要素とインデックスを取得することができます。
for文は繰り繰り返し処理を行うことができる文法であり、enumerate()関数は要素を取得する際にインデックスを自動的に付けてくれるメソッドになります。
その為、for文にenumerate()関数を使用するととてもシンプルなコードでインデックスをを取得することができます。
また、for文にenumerate()関数を使用する際に、リストやタプルなどのようなデータが集まった要素を取り出したい場合が多いかもしれません。
しかし、データが集まった要素を取り出すだけでなく、文字列の文字を一つずつインデックスと同時に取り出すことも可能です。
今回はfor文にenumerate()関数を使ってリスト等の要素とインデックスを取得する方法について以下の内容で解説します。
⚫︎ list(リスト)の要素とインデックスを取得する場合
⚫︎ tuple(タプル)の要素とインデックスを取得する場合
⚫︎ dict(辞書)の要素とインデックスを取得する場合
⚫︎ set(集合)型の要素とインデックスを取得する場合
⚫︎ array(配列)の要素とインデックスを取得する場合
⚫︎ 多次元のlist(リスト)の要素とインデックスを取得する場合
⚫︎ 多次元のtuple(タプル)の要素とインデックスを取得する場合
⚫︎ 多次元のdict(辞書)の要素とインデックスを取得する場合
⚫︎ 多次元のarray(配列)の要素とインデックスを取得する場合
⚫︎ for文とenumerate()で文字列の文字とインデックスを同時に取得する方法
目次
for文とは
for文(for in)とは繰り返し処理であり、特定の条件が満たされるまで同じ数のコードを何度も実行することができます。
ループ処理を使うと、数値や数式などを何回も書かなくて済みますので、非常に便利です。
for文の書き方
for文の構文は下記となります。
1 2 |
for 変数 in オブジェクト: 実行する処理 |
for文にオブジェクトを指定すると、オブジェクトの中にある要素を一つずつ取り出すことができます。
for文について詳しく知りたい場合はこちらをご参照ください。
enumerate()関数とは
enumerate()関数とは、リストを反復処理しているときに要素のインデックスを取得することができます。
反復可能なオブジェクト(ゼロ以上)を受け取り、それらをタプルに集約して返します。
enumerate()関数の書き方
enumerate()関数の構文は下記になります。
1 |
enumerate(リストなど[, 開始値]) |
enumerate()のパラメータにリストなどを指定することで、リストなどのデータの集まりの要素をインデックスと一緒に取り出すことができます。
enumerate()関数について詳しく知りたい場合はこちらをご参照ください。
リスト等の要素とインデックスを取得するサンプルコード
for文にenumerate()関数を使ってリスト等の要素とインデックスを取得するサンプルコードを紹介します。
list(リスト)の要素とインデックスを取得する場合
list(リスト)の要素とインデックスを取得してみます。
例
1 2 3 4 5 6 7 8 9 10 |
list1 = ["田中", "鈴木", "木村", "中村", "本田", "松本"] list2 = [1, 2, 3, 4, 5, 6] for i in enumerate(list1): print(i) for j in enumerate(list2): print(j) |
出力結果
(0, ‘田中’)
(1, ‘鈴木’)
(2, ‘木村’)
(3, ‘中村’)
(4, ‘本田’)
(5, ‘松本’)
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
リストの要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
tuple(タプル)の要素とインデックスを取得する場合
tuple(タプル)の要素とインデックスを取得してみます。
例
1 2 3 4 5 6 7 8 9 10 |
list1 = ('田中', '鈴木', '木村', '中村', '本田', '松本') list2 = 1, 2, 3, 4, 5, 6 for i in enumerate(list1): print(i) for j in enumerate(list2): print(j) |
出力結果
(0, ‘田中’)
(1, ‘鈴木’)
(2, ‘木村’)
(3, ‘中村’)
(4, ‘本田’)
(5, ‘松本’)
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
タプルの要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
dict(辞書)の要素とインデックスを取得する場合
dict(辞書)の要素とインデックスを取得します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
dictio1 = {'A':'Apple', 'B': 'Ball', 'C': 'Cat', 'D': 'Desk', 'E': 'eye'} dictio2 = {11: 1, 12: 2, 13: 3, 14: 4, 15: 5} for i in enumerate(dictio1): print(i) for k in enumerate(dictio1.values()): print(k) for l in enumerate(dictio2): print(l) for m in enumerate(dictio2): print(m) |
出力結果
(0, ‘A’)
(1, ‘B’)
(2, ‘C’)
(3, ‘D’)
(4, ‘E’)
(0, ‘Apple’)
(1, ‘Ball’)
(2, ‘Cat’)
(3, ‘Desk’)
(4, ‘eye’)
(0, 11)
(1, 12)
(2, 13)
(3, 14)
(4, 15)
(0, 11)
(1, 12)
(2, 13)
(3, 14)
(4, 15)
辞書の要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
set(集合)型の要素とインデックスを取得する場合
set(集合)型の要素とインデックスを取得してみます。
例
1 2 3 4 5 6 7 8 |
set1 = {'田中', '鈴木', '木村', '中村', '本田', '松本'} set2 = {1, 2, 3, 4, 5, 6} for i in enumerate(set1): print(i) for j in enumerate(set2): print(j) |
出力結果
(0, ‘田中’)
(0, ‘木村’)
(1, ‘松本’)
(2, ‘田中’)
(3, ‘鈴木’)
(4, ‘本田’)
(5, ‘中村’)
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
set型の要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
array(配列)の要素とインデックスを取得する場合
配列の要素とインデックスを取得します。
例
1 2 3 4 5 6 7 8 9 10 11 12 |
import array name = array.array("u", ["あ", "い", "う", "え", "お", "か"]) num = array.array("h", [1, 2, 3, 4, 5, 6]) for i in enumerate(name): print(i) for j in enumerate(num): print(j) |
出力結果
(0, ‘あ’)
(1, ‘い’)
(2, ‘う’)
(3, ‘え’)
(4, ‘お’)
(5, ‘か’)
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
配列の要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
多次元のリスト等の要素とインデックスを取得するサンプルコード
for文にenumerate()関数を使ってて多次元のリスト等の要素とインデックスを取得するサンプルコードを紹介します。
多次元のlist(リスト)の要素とインデックスを取得する場合
多次元のlist(リスト)の要素とインデックスを取得してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
list1 = [ [13, 0.5, -30, 1000], [23, 67, 67, 78] ] list2 =[ ["たなか","さわむら","なかむら"],["うしじま", "やまもと", "ながしま"] ] print("・二次元リストの要素を取得") for i in enumerate(list1): print(i) print("・二次元リストの中にある一次元リストの要素を取得") for j in enumerate(list2[0]): print(j) |
出力結果
・二次元リストの要素を取得
(0, [13, 0.5, -30, 1000])
(1, [23, 67, 67, 78])
・二次元リストの中にある一次元リストの要素を取得
(0, ‘たなか’)
(1, ‘さわむら’)
(2, ‘なかむら’)
多次元のリストの要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
多次元のtuple(タプル)の要素とインデックスを取得する場合
多次元のtuple(タプル)の要素とインデックスを取得してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
tuple1 = ( (13, 0.5, -30, 31000), (24, 674, 677, 788) ) tuple2 =( ("たなか","さわむら","あずまね"),("うしじま", "てんどう", "ながしま") ) print("・二次元タプルの要素を取得") for i in enumerate(tuple1): print(i) print("・二次元タプルの中にある一次元タプルの要素を取得") for j in enumerate(tuple2[0]): print(j) |
出力結果
・二次元タプルの要素を取得
(0, (13, 0.5, -30, 31000))
(1, (24, 674, 677, 788))
・二次元タプルの中にある一次元タプルの要素を取得
(0, ‘たなか’)
(1, ‘さわむら’)
(2, ‘あずまね’)
多次元のタプルの要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
多次元のdict(辞書)の要素とインデックスを取得する場合
多次元の辞書の要素とインデックスを取得します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
station = { '東京':[['東京','渋谷', '神田', '上野'], ['原宿', '五反田', '銀座', '青山']], '愛知':[['名古屋', '栄', '金山'], ['久屋大通り','大須観音', '矢場町']] } print("・辞書のキーを取得") for l in enumerate(station.keys()): print(l) print("・辞書の値を取得") for l in enumerate(station.values()): print(l) print("・東京キーの2番目の値を取得") for m in enumerate(station['東京'][1]): print(m) print("・愛知キーの2番目の値を取得") for n in enumerate(station['愛知'][1]): print(n) |
出力結果
・辞書のキーを取得
(0, ‘東京’)
(1, ‘愛知’)
・辞書の値を取得
(0, [[‘東京’, ‘渋谷’, ‘神田’, ‘上野’], [‘原宿’, ‘五反田’, ‘銀座’, ‘青山’]])
(1, [[‘名古屋’, ‘栄’, ‘金山’], [‘久屋大通り’, ‘大須観音’, ‘矢場町’]])
・東京キーの2番目の値を取得
(0, ‘原宿’)
(1, ‘五反田’)
(2, ‘銀座’)
(3, ‘青山’)
・愛知キーの2番目の値を取得
(0, ‘久屋大通り’)
(1, ‘大須観音’)
(2, ‘矢場町’)
多次元の辞書の要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
多次元のarray(配列)の要素とインデックスを取得する場合
多次元のarray(配列)の要素とインデックスを取得します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import numpy as np name = np.array( [["竈門", "我妻"], ["富岡", "胡蝶", "煉獄", "時透"]] ) num = np.array( [[0, 1, 2], [3, 4, 5]] ) print("・二次元配列の要素を取得") for i in enumerate(name): print(i) print("・二次元配列の中にある一次元配列の要素を取得") for j in enumerate(num[1]): print(j) |
出力結果
・二次元配列の要素を取得
(0, [‘竈門’, ‘我妻’])
(1, [‘富岡’, ‘胡蝶’, ‘煉獄’, ‘時透’])
・二次元配列の中にある一次元配列の要素を取得
(0, 3)
(1, 4)
(2, 5)
多次元の配列の要素をそれぞれ取得し、要素ごとによってインデックスが付与されています。
for文とenumerate()で文字列の文字とインデックスを同時に取得する方法
for文とenumerate()関数はリストのような形のデータの集まりだけでなく、文字列の文字もインデックスと同時に取得することができます。
例
1 2 3 4 5 6 7 8 9 10 |
string1 = "Pythonのfor文とenurater関数" string2 = "for文" + "enurater関数" + "=データとインデックス同時に取得" print("・文字列の文字を取得") for stringA in enumerate(string1): print(stringA) print("・結合する文字列の文字を取得") for stringB in enumerate(string2): print(stringB) |
出力結果
・文字列の文字を取得
(0, ‘P’)
(1, ‘y’)
(2, ‘t’)
(3, ‘h’)
(4, ‘o’)
(5, ‘n’)
(6, ‘の’)
(7, ‘f’)
(8, ‘o’)
(9, ‘r’)
(10, ‘文’)
(11, ‘と’)
(12, ‘e’)
(13, ‘n’)
(14, ‘u’)
(15, ‘r’)
(16, ‘a’)
(17, ‘t’)
(18, ‘e’)
(19, ‘r’)
(20, ‘関’)
(21, ‘数’)
・結合する文字列の文字を取得
(0, ‘f’)
(1, ‘o’)
(2, ‘r’)
(3, ‘文’)
(4, ‘e’)
(5, ‘n’)
(6, ‘u’)
(7, ‘r’)
(8, ‘a’)
(9, ‘t’)
(10, ‘e’)
(11, ‘r’)
(12, ‘関’)
(13, ‘数’)
(14, ‘=’)
(15, ‘デ’)
(16, ‘ー’)
(17, ‘タ’)
(18, ‘と’)
(19, ‘イ’)
(20, ‘ン’)
(21, ‘デ’)
(22, ‘ッ’)
(23, ‘ク’)
(24, ‘ス’)
(25, ‘同’)
(26, ‘時’)
(27, ‘に’)
(28, ‘取’)
(29, ‘得’)
文字列の文字を取得し、文字ごとによってインデックスが付与されています。
また、結合中の文字列でも文字を取得し、文字ごとによってインデックスが付与されています。
今回のポイント
for文とenumerate()でリスト等の要素とインデックスを取得
⚫︎ for文とenumerate()でリスト等の要素とインデックスを取得することができる
⚫︎ for文とenumerate()で多次元のリスト等の要素とインデックスを取得することも可能
⚫︎ for文とenumerate()はリスト等のデータの集まりだけでなく文字列でも使用可能である
(文字列の場合は文字とインデックスを同時に取得し、結合中の文字列でも可能である)
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。