手动访问迭代器中的元素
可迭代对象
迭代器对象
调用next
委托迭代
定义__iter__方法,将迭代请求委托到,对象内部的容器
生成器创建自定义迭代
函数中出现了yield,转变为生成器
只有在响应迭代操作才运行
实现迭代协议
简单方案:实现生成器
反向迭代
reversed
要求: 长度确定,或实现了__reversed__
否则先转化为列表
定义有额外状态的生成器函数
类,实现iter为生成器函数
类实例,提供内部属性访问
生成器需要与程序其他部分交互
暴露属性,允许方法调用来获得控制
需要额外调用一次iter,提取类中的迭代器
迭代器切片
itertolls.islice
产生迭代器,访问需要的数据
跳过开头一部分迭代元素
itertools.dropwhile
对可能的组合与排列
itertools.permutations
.combinations
指定:长度,是否允许重复