Python基础——迭代和解析

for循环可以迭代序列对象,从左到右遍历序列对象的元素。这里for循环属于迭代工具,而序列属于可迭代对象,两者通过迭代协议联系。
python提供了内置函数next,以迭代器做输入,每次返回序列的下一元素,直到序列末尾,引发异常:

>>>i = iter([1, 2, 3, 4])
>>>next(i)
1
>>>next(i)
2
>>>next(i)
3
>>>next(i)
4
>>>next(i)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

而迭代器自身包含next()方法,效果和内置函数next()是一样的。这就是所谓的迭代协议:有next()方法的对象读取下一个元素,直到末尾触发StopIteration异常。所有的迭代工具内部都是在每次迭代时调用next()方法。

注意,文件对象本身就是其迭代器,有next()方法。而列表、元组、字典虽然是可迭代对象,但本身并不是迭代器,需要显式地转换成迭代器:i = iter(L),然后才能调用next()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值