Python 3.X 中的新可迭代对象与文档说明
1. Python 3.X 中的新可迭代对象
1.1 可迭代对象概述
在 Python 3.X 中,相比 2.X 更加强调迭代器的使用。除了文件和字典等内置类型关联的迭代器外,字典的 keys
、 values
和 items
方法,以及内置函数 range
、 map
、 zip
和 filter
都返回可迭代对象,而不是像 2.X 那样构建结果列表,这些工具在 3.X 中按需生成结果。
1.2 对 2.X 代码的影响
1.2.1 优点
节省内存空间,在大型程序中,延迟求值可以避免在计算大结果列表时的暂停。
1.2.2 缺点
可能会影响编码风格,在某些情况下需要额外的代码来处理。例如,在 3.X 中需要将函数和方法调用结果包装在 list(...)
中来强制一次性生成所有结果进行显示:
zip('abc', 'xyz') # An iterable in Python 3.X (a list in 2.X)
<zip object at 0x000000000294C308>
list(zip('abc', 'xyz')) # Force list of results in 3.X to displa