Pythonのenumerateでインデックス番号を取得
Pythonのenumerateのサンプルコード
enumerate() は、イテラブル(リストやタプルなど)の要素と同時にインデックス番号(カウント、順番)を取得する組み込み関数です。
使い方は以下の通り
enumerate(iterable, start=0)
iterable : イテレータ(リスト、タプル、文字列など)
start : インデックスの数え始める数(デフォルトは0)
戻り値:enumerateオブジェクト
インデックス付きの要素を取得するには、for文やリスト内包表記を使用します。
以下は、for分でタプルのインデックス要素を取得する例です。
# サンプルコード tuple_data = ("apple", "orange", "banana") for i, t in enumerate(tuple_data): print("インデックス番号: {}, 要素: {}".format(i, t))
実行するとこうなります。
インデックス番号: 0, 要素: apple インデックス番号: 1, 要素: orange インデックス番号: 2, 要素: banana
pythonのenumerateを逆順にする
リストの逆順にインデックス番号をつけるには、reversedで順序を逆転します。reversedは、イテレータを反転させる関数です。この関数を使えば、リストなどのオブジェクトを反転させることができます。
mylist = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"] for i, v in enumerate(reversed(mylist)): print(f'index:{i}, value:{v}')
実行するとこうなります。
index:0, value:J index:1, value:I index:2, value:H index:3, value:G index:4, value:F index:5, value:E index:6, value:D index:7, value:C index:8, value:B index:9, value:A
内包表記だと以下のようになります。
#内包表記 [(i, sample_list[i]) for i in range(len(sample_list))]
実行するとこうなります。
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D'), (4, 'E'), (5, 'F'), (6, 'G'), (7, 'H'), (8, 'I'), (9, 'J')]
pythonのenumerateでインデックス番号と値をzipでタプル化
enumerateで取り出したリストの値とインデックス番号を組み合わせてタプル化し、リストにするには以下のようにします。
my_list = ['apple', 'banana', 'orange', 'peach', 'pineapple', 'strawberry', 'mango', 'grape', 'melon', 'kiwi'] for index, value in enumerate(my_list): print(list(zip(index, value)))
実行するとこうなります。
[(0, 'apple')] [(1, 'banana')] [(2, 'orange')] [(3, 'peach')] [(4, 'pineapple')] [(5, 'strawberry')] [(6, 'mango')] [(7, 'grape')] [(8, 'melon')] [(9, 'kiwi')]
pythonのenumerateでdic(辞書)からインデックスと要素を取得
sortedを使って、ソートした辞書オブジェクトから、キー、値のタプルとインデックス番号を取得するには以下のようにします。
dic = {1: 'olive', 5: 'apple', 3: 'banana', 7: 'coconut', 9: 'fig', 0: 'grape', 6: 'mango', 4: 'orange', 8: 'pear', 2: 'strawberry'} for index, (key, value) in enumerate(sorted(dic.items())): print(f'Index:{index} tKey:{key} tValue:{value}')
forループで、インデックス、キー、値を取り出しています。
実行するとこうなります。
Index:0 Key:0 Value:grape Index:1 Key:1 Value:olive Index:2 Key:2 Value:strawberry Index:3 Key:3 Value:banana Index:4 Key:4 Value:orange Index:5 Key:5 Value:apple Index:6 Key:6 Value:mango Index:7 Key:7 Value:coconut Index:8 Key:8 Value:pear Index:9 Key:9 Value:fig
pythonのenumerateのまとめ
- enumarate()関数はインデックス付きの要素を取得するのに便利な関数です。
- forループの中で使用することで、インデックスと要素を同時に取得することができます。
- 要素をインデックス付きで取得することで、要素を反復処理する際の効率を高めることができます。