ホームページ > バックエンド開発 > Python チュートリアル > 明示的なイテレータなしで Python でループできますか?

明示的なイテレータなしで Python でループできますか?

Linda Hamilton
リリース: 2024-12-01 13:51:10
オリジナル
876 人が閲覧しました

Can You Loop in Python Without an Explicit Iterator?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート