ホームページ >バックエンド開発 >Python チュートリアル >Python でイテレータを作成して使用するにはどうすればよいですか?
Python でイテレータを作成する
Python でイテレータを構築するには、2 つの重要なメソッド __iter__() と __iter__() を指定するイテレータ プロトコルを実装する必要があります。 __次__()。これらのメソッドは、オブジェクトが一連の値を初期化および反復処理する方法を定義します。
イテレータ プロトコルについて理解する
__iter__() では、イテレータ オブジェクトが返されます。通常、ループの開始時に暗黙的に呼び出されます。 __next__() は、シーケンス内の次の値を返す主要なメソッドです。 Python 2 ユーザーの場合、このメソッドは next() として知られています。すべての値が使い果たされると、__next__() は StopIteration 例外を発生させます。この例外により、反復を終了するためにキャプチャがループ構成されます。
例: Counter Iterator
単純な指定された範囲内の値を生成するカウンター反復子:
class Counter: def __init__(self, low, high): self.current = low - 1 self.high = high def __iter__(self): return self def __next__(self): # Python 2: def next(self) self.current += 1 if self.current < self.high: return self.current raise StopIteration # Usage: for c in Counter(3, 9): print(c)
これにより、次の出力:
3 4 5 6 7 8
イテレータにジェネレータを使用する
ジェネレータは、イテレータを作成するための代替メカニズムを提供します。ジェネレータ関数は一度に 1 つずつ値を生成し、イテレータ プロトコルを効果的に実装します。
def counter(low, high): current = low while current < high: yield current current += 1 # Usage: for c in counter(3, 9): print(c)
上記のコードは、Counter クラスと同じ出力を生成します。
追加リソース
イテレータの包括的な理解については、David Mertz の記事「イテレータと単純な」などのリソースを参照してください。ジェネレーター。"
以上がPython でイテレータを作成して使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。