お困りの方へ
この記事では、組み込み関数のenumerateの説明をします。
enumerate以前
enumerateを知らない人は、こんなfor文を書いてしまうかもしれません。
カウンタ変数iを定義してカウントアップする部分はenumerateで改善できます。
l = ['apple', 'orange', 'lemon', 'kiwi']
i = 0
for x in l:
print(f'i:{i} x:{x}')
i += 1
# i:0 x:apple
# i:1 x:orange
# i:2 x:lemon
# i:3 x:kiwi
enumerate以降
enumerateを使えば、上のコードを5行から3行に削減できます。
l = ['apple', 'orange', 'lemon', 'kiwi']
for i, x in enumerate(l):
print(f'i:{i} x:{x}')
# i:0 x:apple
# i:1 x:orange
# i:2 x:lemon
# i:3 x:kiwi
enumerate関数には引数startがあります。
カウンタの数字はデフォルトはゼロスタートですが、変えることができます。
l = ['apple', 'orange', 'lemon', 'kiwi']
for i, x in enumerate(l, start=15):
print(f'i:{i} x:{x}')
# i:15 x:apple
# i:16 x:orange
# i:17 x:lemon
# i:18 x:kiwi
enumerateの使い方としては、listからカウンタをIDキーとした辞書型を作ることもできます。
l = ['apple', 'orange', 'lemon', 'kiwi']
d = {}
for i, x in enumerate(l, start=1):
d.update({i: x})
print(json.dumps(d, indent=4))
# {
# "1": "apple",
# "2": "orange",
# "3": "lemon",
# "4": "kiwi"
# }
この記事の補足として、enumerateの仕様書を載せておきます。
