You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中map函数疑问:为何输出<map at 0x15a6cf17550>?

为什么调用map函数后输出是<map at 0x15a6cf17550>?

这是Python 3和Python 2的一个关键区别哦!在Python 3里,map()函数不再直接返回一个列表,而是返回一个迭代器对象(就是你看到的<map at 0x15a6cf17550>这种形式)——这么设计是为了节省内存,它不会一次性把所有计算结果都存进内存,而是等你需要的时候才逐个生成对应的值。

要得到你想要的转换后的温度列表,有两种简单的解决方法:

方法1:将map迭代器转换为列表

直接用list()函数把map对象包裹起来,就能得到完整的结果列表:

def fahrenheit(T):
    return (9.0/5)*T + 32
temp = [2 , 43 , 54 , 67 , 78 , 89.9]
result = list(map(fahrenheit,temp))
print(result)

运行这段代码,就能输出[35.6, 109.4, 129.2, 152.6, 172.4, 193.82],也就是你预期的温度转换结果啦。

方法2:用列表推导式替代map(更Pythonic的写法)

不少Python开发者更青睐列表推导式,它的可读性更强,也能实现完全一样的功能:

def fahrenheit(T):
    return (9.0/5)*T + 32
temp = [2 , 43 , 54 , 67 , 78 , 89.9]
result = [fahrenheit(t) for t in temp]
print(result)

执行后输出的结果和方法1完全一致。

如果只是想逐个查看转换后的温度值,也可以直接用for循环遍历map对象:

for converted_temp in map(fahrenheit,temp):
    print(converted_temp)

这样会依次打印出每个转换后的温度数值。

内容的提问来源于stack exchange,提问作者Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:53:36