(适用于Python 3)
在Python文档中,您可以看到,list()
函数接受一个可迭代对象。
在Python文档中,您还可以看到,next()
函数接受一个迭代器。
因此,在IDLE中我这样做:
>>> var = map(lambda x: x+5, [1,2,3])
>>> var
>>> next(v)
>>> list(v)
这将输出:
<map object at 0x000000000375F978>
6
[7,8]
坦白说,这不是我预期的。地图对象是迭代器还是可迭代对象?它们有什么区别吗?显然,无论地图对象是什么,
list()
和next()
函数都可以使用。
为什么它们都能用?
map
的结果始终为列表,但考虑到您的结果,这似乎有些奇怪。 - Lasse V. Karlsenrange
、filter
、map
等,开始返回迭代器。这样更节省内存(不再有xrange
)。 - daniel gratzer