|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
>>> from functools import reduce
>>> def fn(x, y):
... return x * 10 + y
...
>>> def char2num(s):
... digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
... return digits[s]
...
>>> reduce(fn, map(char2num, '13579'))
13579
请问下第二个函数是干嘛用的呢? 单独调用char2num(s)这个函数也会出错呀。
>>> def char2num(s):
digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return digits[s]
>>> char2num(2)
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
char2num(2)
File "<pyshell#23>", line 3, in char2num
return digits[s]
KeyError: 2
相当于自己写str转int的函数,
- >>> def char2num(s):
- digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
- return digits[s]
复制代码
首先,自定义函数char2num传入str(其实就是你输入的数字),将你传入的str作为key,然后通过digits字典返回int类型的值,从而达到str转int的目的。
所以你在单独调用该函数时,不能传入数字2,而必须是字符串'2',既带引号的。因为字典中的key都是字符串格式,所以会有你的报错。
|
|