迭代器和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。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值