变量中丢失映射值

时间:2019-04-24 08:55:53

标签: python

无法理解为什么我不能将地图结果分配给变量。它正在失去价值。

>>> 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)
[]

2 个答案:

答案 0 :(得分:0)

因为地图对象只能在上迭代一次。当您打印时,仅此而已。下次分配时,它为空

相反,尝试

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

答案 1 :(得分:0)

在Python 3中,map返回一个迭代器,该迭代器一旦被消耗,将不会产生任何结果。 在您的情况下,您将在第一个print(list(R))调用中使用它,因此在第二个调用中,它不会产生与单独list()相同的任何结果。