关于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'

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

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

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

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

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