迭代器:
调用next()时返回容器中的下一个值,热和实现了__iter__和__next__()方法的对象都是迭代器,不会一次性把元素追加到内存中
可迭代对象:
实现了iter方法,该方法返回迭代器对象。
列表是一个可迭代对象。
用for循环遍历列表——列表实现了iter方法——返回一个迭代器——调用next()方法
生成器:
一边循环一边计算的机制,生成器能做迭代器能做的所有事。
return:返回结果后结束函数运行
yield:让函数变成生成器,生成器每次产生一个值(执行一次yield),函数被冻结,直到被唤醒后产生下一个值。
例:
求一组数的平方
def aaa(n):
ls = [ii for i in n]
return ls
def aaa(n):
for i in n:
yield ii