为什么在python中使用map()函数时得到的列表错误?这是我的代码,
当我使用print()函数打印列表(r)
print(list(r))
我的结果是一个空列表。
但是当我编写代码时:
rList= list(r)
然后
print(rList)
我的结果是正确的。
这是我的代码:
def f(x):
return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
rList= list(r)
print( list(r) )
print( rList)
这是我的结果:
[]
[1,4,9,16,25,36,49,64,81]
这是预期的结果
[1,4,9,16,25,36,49,64,81]
[1,4,9,16,25,36,49,64,81]
答案 0 :(得分:1)
当您将r
(地图对象)强制转换为列表时,这意味着您在整个列表中都运行了f
函数,它将完成。您不能两次使用map
的结果。像itertools.groupby
。