1. イテレータ
イテレータは、コレクション要素にアクセスする方法です。イテレータ オブジェクトは、コレクションの最初の要素からアクセスを開始し、すべての要素がアクセスされるまでアクセスします。イテレータは前方にのみ移動でき、後方には移動できませんが、反復中に後方に移動することはほとんどないため、問題ありません。さらに、反復子の大きな利点の 1 つは、反復プロセス全体ですべての要素を事前に準備する必要がないことです。イテレータは要素を反復するときにのみ要素を計算し、その前後に要素が存在しないか、破棄される可能性があります。この機能は、数 G のファイルなど、巨大または無限のコレクションを走査するのに特に適しています。 機能:
訪問者はイテレータの内部構造を気にする必要はなく、次を渡すだけで済みます。 () メソッドは次のコンテンツをフェッチし続けます
コレクション内の値にランダムにアクセスすることはできません。最初から最後まで順番にのみアクセスできます
途中で戻ることはできませんaccess
比較的大きなデータセットをループしてメモリを節約するのに便利
>>> a = iter([1,2,3,4,5]) >>> a <list_iterator object at 0x101402630> >>> a.__next__() 1 >>> a.__next__() 2 >>> a.__next__() 3 >>> a.__next__() 4 >>> a.__next__() 5 >>> a.__next__() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
2. ジェネレーター
関数が呼び出されると、イテレータを返し、次にこれを返します。関数はジェネレーター (ジェネレーター) と呼ばれます。関数に yield 構文が含まれている場合、この関数はジェネレーターになります
def func(): yield 1 yield 2 yield 3 yield 4
上記のコードでは、 func はジェネレーターと呼ばれる関数であり、この関数が func () を実行するとイテレータが得られます。
rreee3。
以上がPython の基本的なイテレータとジェネレータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。