Pythonでは、for
ループで項目とそのインデックスを同時に取得するためにenumerate()
関数を使用しますが、while
ループで同様のことを行う方法は直感的ではありません。しかし、それは決して難しくありません。以下に、while
ループでのenumerate()
の使用方法を示します。
カウンター変数を使用する
最も簡単な方法は、単純な変数と加算を使用してwhile
ループの外部でカウンターを手動でカウントすることです。
count = 0
while condition:
# ループの本体
count += 1
この方法では、ループの各反復でカウンターcount
が1ずつ増加します。
ジェネレータとenumerateを使用する
各ステップの反復が有意義な値を生成する場合、ループをジェネレータにすることを検討し、その後でfor
ループとenumerate()
を使用することができます。
def produce_steps():
while condition:
# ステップの値を生成
yield step_value
for count, step_value in enumerate(produce_steps()):
# ループの本体
この方法は、終了時のカウントだけでなく、どのステップにいるかを気にする場合に最も意味があります。
これらの方法を使用すれば、Pythonのwhile
ループでenumerate()
のような動作を実現することができます。適切な方法を選択することで、コードの可読性と効率性を向上させることができます。