迭代器:
迭代器这三个字大家都认识吧!那什么是迭代器?那我说说吧。
首先迭代器是一个对象,而且是一个带状态的对象,只要能实现 __iter()__ 和 __next()__ 方法的对象都可以叫迭代器.
__iter()__方法返回迭代器的自身,而__next()__方法则是返回容器中的下一个值,如果没有值将会抛出异常。
那你还会问Python为什么要迭代器?书上是这样说的
- 提供了可扩展的迭代接口
- 对列表迭代带来了性能上的增强
- 在字典迭代中性能提升
- 创建真正的迭代接口,而不是原来得随机访问
- 迭代非序列集合时,可以创建更简洁的代码
TheTuple = (1,'a',6.6)
i = iter(TheTuple)
i.next() # 1
i.next() # 'a'
i.next() # 6.6
i.next() #将会报出异常StopIteration
可迭代对象:
在Python中如果一个对象有__iter__( )方法或__getitem__( )方法,则称这个对象是可迭代的,其中__iter()__方法可以让对象用for in 进行遍历。__getitem__()方法可以通过实例的下标访问实例中的元素。可迭代对象有list,dict,tuple,string,文件等。
如何创建迭代对象:
iter(obj)
iter(func,sentinel)
如果传递一个单数iter(),会检查传递的是否是一个序列,如果是,索引从0开始迭代到结束。如果是两个参数将会重复调用func,知道迭代器的下一个值等于sentinel。