Pythonのenumerate
関数は、イテレータブル(リスト、タプルなど)を引数に取り、各要素とそのインデックスを返す便利な関数です。しかし、イテレーション中に次の要素を取得する方法は直感的ではありません。この記事では、その方法を説明します。
enumerate関数とは
enumerate
関数は、イテレータブルを引数に取り、各要素とそのインデックスを返します。以下に例を示します。
pokemon_picture_book = ["フシギダネ", "フシギソウ", "フシギバナ", "ヒトカゲ"]
for number, name in enumerate(pokemon_picture_book):
print(number, name)
#0 フシギダネ
#1 フシギソウ
#2 フシギバナ
#3 ヒトカゲ
次の要素の取得
イテレーション中に次の要素を取得するには、enumerate
関数と一緒に%
演算子を使用します。以下に例を示します。
li = [0, 1, 2, 3]
running = True
while running:
for idx, elem in enumerate(li):
thiselem = elem
nextelem = li[(idx + 1) % len(li)]
このコードでは、リストli
の各要素とその次の要素を取得しています。リストの最後の要素の次には最初の要素が来るように、%
演算子を使用しています。
無限ループ
リストを無限にループする場合は、以下のようにします。
li = [0, 1, 2, 3]
running = True
idx = 0
while running:
thiselem = li[idx]
idx = (idx + 1) % len(li)
nextelem = li[idx]
このコードでは、idx
を更新することで次の要素を取得しています。
以上がPythonのenumerate
関数と次の要素の取得方法についての説明です。これらのテクニックを使うことで、Pythonでのイテレーションがより柔軟になります。