为了账号安全,请及时绑定邮箱和手机立即绑定

执行完map()函数后,报:<map object at 0x0045C370>,哪出错了,求指教

def format_name(s):
   return s[0].upper() + s[1:].lower()
print (map(format_name, ['adam', 'LISA', 'barT']))

正在回答

6 回答

代码应该是没问题,用list包装起来就会得到想要的结果,可能你在上面函数中定义了map所以出现了歧义。



0 回复 有任何疑惑可以回复我~
def format_name(s):
    return s.title()
print (list(map(format_name, ['adam', 'LISA', 'barT'])))
这里直接用s.title()不是更好吗?为什么要用 s[0].upper() + s[1:].lower()?求大神解释


0 回复 有任何疑惑可以回复我~

print (list(map(format_name, ['adam', 'LISA', 'barT'])))

1 回复 有任何疑惑可以回复我~
#1

sDream

不好使啊,报下面这个错误 Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> print (list(map(format_name, ['adam', 'LISA', 'barT']))) TypeError: 'map' object is not callable
2018-01-15 回复 有任何疑惑可以回复我~

你需要吧迭代的内容进行封装一下,也就是list一下

0 回复 有任何疑惑可以回复我~

这种情况是因为在python3里面,map()的返回值已经不再是list,而是iterators, 所以想要使用,只用将iterator 转换成list 即可, 比如  list(map()) 

1 回复 有任何疑惑可以回复我~
#1

sDream

为啥不好使,还报错了 Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> print (list(map(format_name, ['adam', 'LISA', 'barT']))) TypeError: 'map' object is not callable
2018-01-15 回复 有任何疑惑可以回复我~

我也遇到了这个问题

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

执行完map()函数后,报:<map object at 0x0045C370>,哪出错了,求指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信