For ループ内のイテレータ変数の削除
同じ命令セットを実行しながら、範囲を反復処理するのは簡単なタスクのように思えるかもしれません。特定の回数。しかし、反復子変数 (通常は「i」で示される) が明確な目的を果たさない場合はどうなるでしょうか?その使用を省略することは可能でしょうか?
直接的な代替手段はありません
一見すると、答えは否定的に見えます。 Python 構文では、反復されるコレクションまたはシーケンスを横断するために、すべての for ループに反復子変数を含めることが義務付けられています。
反復子の動作を模倣する
明示的な反復子がないにもかかわらず、「イテレータのような」動作の基本的な形式は、次の方法で実現できます。高階関数:
def loop(f, n): for i in xrange(n): f() loop(lambda: <insert expression here>, 5)
この例では、「n」は必要な反復回数を表し、「f」は各反復内で意図したアクションを実行する関数です。残念ながら、このアプローチではさらに煩雑さと冗長性が生じます。
アンダースコア変数
Python は、最後に検出された値のプレースホルダーとして効果的に機能する '_' 変数を提供します。 。これは魅力的な代替手段かもしれませんが、「_」は最後に見つかった式の値を仮定することに注意することが重要です:
>>> 1+2 3 >>> _ 3
そのため、for ループ内で使用すると予期しない結果が生じる可能性があり、インタプリタの中断の可能性:
>>> for _ in xrange(10): pass ... >>> _ 9 >>> 1+2 3 >>> _ 9
結論
Python はネイティブでサポートしていませんイテレータ変数のない for ループでは、アンダースコア変数は、潜在的な警告を伴う限定的な回避策を提供します。ただし、一般的には、for ループ構文の不可欠な部分として反復子変数の使用を採用することをお勧めします。
以上がPythonのForループでイテレータ変数を削除できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。