pythonのイテレータを生成する方法
ジェネレータ関数を使用すると、イテレータを返す関数を簡単に実装できます。ジェネレータ関数は関数本体内で `yield` ステートメントを使用して値を生成する特殊な関数で、ジェネレータ関数を呼び出すと毎回イテレータオブジェクトが返されます。
ジェネレータ関数を用いてイテレーターを返す関数をどのように実装するかを示す簡単な例を以下に示します。
def my_iterator():
data = [1, 2, 3, 4, 5]
for item in data:
yield item
# 使用my_iterator函数获取迭代器对象
my_iter = my_iterator()
# 使用迭代器遍历数据
for item in my_iter:
print(item)
上の例では、my_iterator関数は1から5までの数字を含むイテレータオブジェクトを生成するジェネレータ関数です。関数本体内で、yield文を用いて各数字が生成されます。my_iterator関数を呼び出すと、イテレータオブジェクトが得られます。その後、for文を用いてイテレータオブジェクトを繰り返し、生成された値を順に取得し、印字します。
ジェネレータ関数は惰性評価の特徴があり、yield文が呼び出される度に実行が中断され、値を返し、次回の呼び出し時には前回中断された場所から実行を続行します。この特性により、ジェネレータ関数は大量のデータを処理したり、計算を遅延させる必要がある場合に非常によく適しています。