Python 迭代器与生成器——yield 实战
一、迭代器# 可迭代对象forxin[1,2,3]:passforxinrange(100):pass# 自定义迭代器classMyIterator:def__init__(self,max):self.maxmaxself.current0def__iter__(self):returnselfdef__next__(self):ifself.currentself.max:raiseStopIteration self.current1returnself.current二、生成器# 生成器函数用yielddefcount_up_to(max):n1whilenmax:yieldn# 暂停返回nn1fornumincount_up_to(5):print(num)三、生成器的内存优势# 列表一次性创建所有元素nums[xforxinrange(1000000)]# 占内存# 生成器边用边生成nums(xforxinrange(1000000))# 不占内存 觉得有用的话点赞 关注【张老师技术栈】吧