python中的Map()只提供一次输出

h5qlskok  于 2023-01-08  发布在  Python
关注(0)|答案(1)|浏览(181)

我在Python 3.6.3中使用map()函数时遇到了以下情况::

>>> a = [12, 23, 13, 14, 15, 36]
>>> b = [34, 45, 35, 32, 34, 34]
>>> c = [34, 67, 89, 98, 98, 78]
>>> map(lambda x,y,z:x+y+z, a,b,c )
<map object at 0x0000017DD976EC88>
>>> e=map(lambda x,y,z:x+y+z, a,b,c )
>>> list(e)
[80, 135, 137, 144, 147, 148]
>>> list(e)
[]

我的问题是为什么我第二次使用list(e)时无法得到输出。它显示空列表。
有人能帮我吗?

uelo1irk

uelo1irk1#

因为在Python 3中,map返回一个迭代器,你只能迭代一次。如果你第二次迭代一个迭代器,它会立即引发StopIteration,就像它是空的一样。这就是为什么你第二次调用它时会得到空列表。更多信息请看question
希望这对你有帮助!:)

相关问题