ホームページ >バックエンド開発 >Python チュートリアル >Python でイテレータを作成して使用するにはどうすればよいですか?

Python でイテレータを作成して使用するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-29 17:33:11230ブラウズ

How Do I Create and Use Iterators in 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 サイトの他の関連記事を参照してください。

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