【问题标题】:Map() in python gives output once onlypython中的Map()只给出一次输出
【发布时间】:2018-02-27 05:41:21
【问题描述】:

当我遇到以下情况时,我正在 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) 时无法获得输出。它显示的是空列表。

谁能帮我解决这个问题?

【问题讨论】:

    标签: python-3.x list object lambda empty-list


    【解决方案1】:

    因为在 Python 3 中,ma​​p 返回一个迭代器,您只能迭代一次。如果您第二次迭代一个迭代器,它将立即引发 StopIteration,就好像它是空的一样。这就是为什么你在调用它时第二次得到空列表的原因。 欲了解更多信息,请参阅question

    希望对您有所帮助! :)

    【讨论】:

      猜你喜欢
      • 2022-06-22
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      相关资源
      最近更新 更多