qibingtuanjwh
qibingtuanjwh
采纳率100%
2017-10-01 03:11

关于python函数运行的问题

已采纳

def f(x,y):
return x*10+y
def g(s):
return{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5}[s]
reduce(f,map(g,'1235'))
1235

若单独运行g(s)函数:
g('1235')


KeyError raceback (most recent call last)
in ()
----> 1 g('1235')

in g(s)
2 return x*10+y
3 def g(s):
----> 4 return{'0':0,'1':1,'2':2,'3':3,'4':4,'5':5}[s]
5

KeyError: '1235'

问题:为什么函数单独拿出来运行会出错?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • liutongwei123 kidding1123 4年前

    {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5}里面没有键值'1235',只能是单个数字。

    map函数是把'1235'里的数字逐个的传入g函数中,不是整体传入。

    点赞 评论 复制链接分享
  • qq_25166441 《两点水》 4年前

    函数中的map的第二个参数是iter,出入字符串则将字符串逐个传入函数g中

    点赞 评论 复制链接分享
  • au9888 au9888 4年前

    这是为什么?能否正确还原呢

    点赞 评论 复制链接分享