我正在尝试使用lambda函数和map函数将列表中的所有数字转换为它们的方块,但它似乎没有给出正确的输出!这是代码:
num_file = [12,24,36]
map(lambda num:num**2,num_file)
但它给了我输出而不是正方形:
<map at 0x4d82d10>
请帮助!
答案 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)