python map函数错误

时间:2017-09-23 21:53:37

标签: python python-3.x

我正在尝试使用lambda函数和map函数将列表中的所有数字转换为它们的方块,但它似乎没有给出正确的输出!这是代码:

num_file = [12,24,36]
map(lambda num:num**2,num_file)

但它给了我输出而不是正方形:

<map at 0x4d82d10>

请帮助!

2 个答案:

答案 0 :(得分:2)

map返回一个地图对象,从中获取一个列表,使用list函数:

>>> num_file = [12,24,36]
>>> list(map(lambda num:num**2,num_file))
[144, 576, 1296]

您还可以使用列表理解:

>>> num_file = [12,24,36]
>>> [num**2 for num in num_file]
[144, 576, 1296]

答案 1 :(得分:2)

map返回一个生成器。如果您想获得实际列表,请list(map(..))

请注意,您通常不希望明确地这样做。

例如,下一个代码可以正常工作:

for square in map(lambda n: n**2, [12, 24, 36]):
    print(square)