2017-09-23 107 views
-3

我想使用lambda函数和map函数将列表中的所有数字转换为它们的正方形,但它似乎没有给我正确的输出!下面是代码:python map函数错误

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

但它给我这个输出,而不是正方形:

<map at 0x4d82d10> 

请帮帮忙!

+0

只是采用'list'就可以了:'名单(图(拉姆达民:NUM ** 2,num_file))' – PRMoureu

回答

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] 
+0

这工作!非常感谢 ! –

+0

很高兴帮助:)。 –

2

map返回一个发电机。如果你想得到一个实际的清单做list(map(..))

请注意,你通常不想明确地做。

例如下面的代码将工作得很好:

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