Python 迭代与列表推导式全解析
1. 迭代器基础
在 Python 中,迭代器是一个重要的概念。迭代器是实现了 __next__()
方法的对象,该方法用于返回迭代的下一个值,当没有更多值时会抛出 StopIteration
异常。例如:
>>> I.__next__() # Or use I.next() in 2.X, next(I) in either line
2
>>> I.__next__()
3
>>> I.__next__()
...error text omitted...
StopIteration
文件对象本身就是迭代器,无需额外步骤来获取迭代器。因为文件只支持一次迭代,不能回溯以支持多个活动扫描,所以文件对象有自己的 __next__
方法:
>>> f = open('script2.py')
>>> iter(f) is f
True
>>> iter(f) is f.__iter__()
True
>>> f.__next__()
'import sys\n'
然而,列表和许多其他内置对象不是它们自己的迭代器,因为它们支持多个开放迭代。对于这些对象,我们必须调用 iter()