迭代器和iter()函数

迭代器:

迭代器这三个字大家都认识吧!那什么是迭代器那我说说吧。

首先迭代器是一个对象,而且是一个带状态的对象,只要能实现 __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。

 

 

 

 

 

 

你可能感兴趣的:(迭代器和iter()函数)