Python基础——迭代和解析

来源:互联网 发布:js编程规范 编辑:程序博客网 时间:2024/05/22 06:19

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()方法。

0 0