我在python中使用了函数map(),并将结果转换为列表,但结果为空列表

时间:2019-01-09 10:24:11

标签: python list dictionary printing mapreduce

为什么在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]

1 个答案:

答案 0 :(得分:1)

当您将r(地图对象)强制转换为列表时,这意味着您在整个列表中都运行了f函数,它将完成。您不能两次使用map的结果。像itertools.groupby