python 变量中的Map值丢失[重复]

wydwbb8l  于 2023-01-08  发布在  Python
关注(0)|答案(2)|浏览(164)
    • 此问题在此处已有答案**:

Why can't I iterate twice over the same iterator? How can I "reset" the iterator or reuse the data?(5个答案)
三年前关闭了。
不明白为什么我不能把Map结果赋给一个变量。它正在失去它的值。

>>> L = 'something'
>>> R = map(lambda x: x * 2, L)
>>> print(list(R))
['ss', 'oo', 'mm', 'ee', 'tt', 'hh', 'ii', 'nn', 'gg']
>>> V = list(R)
>>> print(V)
[]
raogr8fs

raogr8fs1#

在Python 3中,map返回一个迭代器,一旦被使用,将不会产生任何结果,在您的例子中,您在第一个print(list(R))调用中使用了它,所以在第二个调用中,它不会产生任何结果,这与单独使用list()相同。

km0tfn4u

km0tfn4u2#

因为map对象只能迭代一次,当你打印它的时候,就这样了,下次你赋值的时候,它就空了
相反,尝试

R = map(..)
V = list(R)
print(V)

相关问题