Python での明示的なイテレータを使用しないループ
Python で値の範囲を反復する従来の方法には、次のような for ループを使用する必要があります。
for i in range(some_number): # do something
などの反復子変数。ただし、この構文は次のようになります。イテレータ変数が必要ない場合には冗長です。代わりに、明示的なイテレータを指定せずにループを実行できるのではないかと疑問に思うかもしれません。
答え:
残念ながら、現時点では、明示的なイテレータを指定せずにループを作成することは不可能です。 Python のイテレータ変数を使用します。最も近い近似は、次のような匿名関数を使用するループです:
def loop(f, n): for i in xrange(n): f() loop(lambda: <insert expression here>, 5)
ただし、このアプローチは標準の for ループを使用するよりも少し複雑であり、一般的には使用されません。
もう 1 つのオプションは、追加の変数として効果的に機能する「_」変数を使用することです。ただし、「_」は対話型 Python セッションで前の式の結果を保持するため、このコンテキストでの使用はやや望ましくないことに注意することが重要です。
さらに、「_」は構文的に有効な変数名ですが、 、潜在的な競合につながる可能性があります。例:
for _ in xrange(10): pass _ # The resulting value is 9 1+2 # The result is still 3, even though it should be 2 since '_' is set to 9
コードの明瞭さを維持し、潜在的な問題を回避するには、for ループで明示的なイテレータ変数を使用することが一般的に良い方法であると考えられています。
以上が明示的なイテレータなしで Python でループできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。