Python のジェネレーターとイテレーター
Python のイテレーターとジェネレーターはどちらも反復可能ですが、実装と使用方法が異なります。 case.
Iterators
Iterators は、一連の項目を走査するためのインターフェイスを提供する反復可能なオブジェクトです。これらには 2 つの主なメソッドがあります:
ジェネレーター
ジェネレーターは、yield キーワードを使用してオンザフライで値を生成する特殊なタイプのイテレーターです。 。呼び出されると、ジェネレーター関数は反復可能なジェネレーター オブジェクトを返します。
内部では、ジェネレーターは反復内の現在位置を追跡する中断された実行状態を保存します。ジェネレーターを反復処理する場合、__next__ メソッドは中断された関数を再開し、次の値を生成します。その後、実行は次の反復まで再び一時停止されます。
使用例
反復子の使用:
ジェネレーターを使用する:
例
指定された範囲の平方数を生成する次の関数を考えてみましょう:
def squares(start, stop): for i in range(start, stop): yield i * i
この関数は、平方数を一度に 1 つずつ生成するジェネレーターを作成します。すべての二乗値の中間リストを作成する必要がないため、リスト内包表記やカスタム反復子よりも効率的です。
以上がPython のイテレータとジェネレータ: いつどちらを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。