迭代器的生成

迭代器的生成

可迭代对象-可迭代的  Iterable

内部含有——iter——

from collections import Iterable

isinstance(要检测的值 Iterator)

访问迭代器中的值:迭代器——next——()

能被for 循环的都是可迭代的

for循环的本质

循环不是迭代器的可迭代对象:不具备next方法的可迭代对象——iter——()就得到了一个迭代器

循环迭代器:直接调用迭代器的next 方法

生成器--迭代器

生成器函数--函数内含有yield关键字

函数的调用返回一个生成器

从生成器中取值的方法和从迭代器中取值的方法完全相同的

next------不常用

for -------最好

list-----最不好

在定义生成器的时候:关键字 yield

在使用生成器的时候:next  send

生成器表达式

就是将列表推导式的中括号改成小括号

列表推导式的结果就是一个列表,生成器表达式的结果是一个生成器

生成器中的内容不获取就不生成,惰性运算

注意事项

next for list 不要混用

生成器函数和装饰器函数一起用

预激生成器的装饰器,在这个装饰器中只做一件事:next(g)

 

posted @ 2017-09-06 15:11  程绩  阅读(124)  评论(0编辑  收藏  举报