ホームページ  >  記事  >  バックエンド開発  >  Python の基本的なイテレータとジェネレータ

Python の基本的なイテレータとジェネレータ

高洛峰
高洛峰オリジナル
2017-03-27 16:41:011963ブラウズ

イテレータとジェネレータ


1. イテレータ

イテレータは、コレクション要素にアクセスする方法です。イテレータ オブジェクトは、コレクションの最初の要素からアクセスを開始し、すべての要素がアクセスされるまでアクセスします。イテレータは前方にのみ移動でき、後方には移動できませんが、反復中に後方に移動することはほとんどないため、問題ありません。さらに、反復子の大きな利点の 1 つは、反復プロセス全体ですべての要素を事前に準備する必要がないことです。イテレータは要素を反復するときにのみ要素を計算し、その前後に要素が存在しないか、破棄される可能性があります。この機能は、数 G のファイルなど、巨大または無限のコレクションを走査するのに特に適しています。 機能:

訪問者はイテレータの内部構造を気にする必要はなく、次を渡すだけで済みます。 () メソッドは次のコンテンツをフェッチし続けます
  1. コレクション内の値にランダムにアクセスすることはできません。最初から最後まで順番にのみアクセスできます
  2. 途中で戻ることはできませんaccess
  3. 比較的大きなデータセットをループしてメモリを節約するのに便利
  4. >>> 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。