我有一個程序下面,我試圖瞭解一個迭代器和一個generator.I得到一個生成器是一個迭代器和more
之間的區別。 我很欣賞這些生成器是生成迭代器的簡潔方法。 但比其他簡潔是有一些其他的功能,發電機提供的迭代器不Python3迭代器vs發生器
def squares(start, stop):
for i in range(start, stop):
yield i * i
generator = squares(1, 10)
print(list(generator))
class Squares(object):
def __init__(self, start, stop):
self.start = start
self.stop = stop
def __iter__(self):
return self
def __next__(self):
if self.start >= self.stop:
raise StopIteration
current = self.start * self.start
self.start += 1
return current
iterator = Squares(1, 10)
l = [next(iterator) for _ in range(1,10)]
print(l)
您是否閱讀過關於該主題的一些答案?例如http://stackoverflow.com/questions/2776829/difference-between-pythons-generators-and-iterators – idjaw
另外,我發現這篇文章很有趣:https://www.oreilly.com/ideas/2-great-benefits- python-generators-and-how-they-changed-me-forever – elethan
@idjaw - 我已經從你提供的鏈接中取得了這個例子。 – liv2hak