Python学习笔记(6) -- 字符转数字、字符串转整型(char2num、str2int)
来源:互联网 发布:angular4 node sass 编辑:程序博客网 时间:2024/05/19 22:26
原文链接:
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317852443934a86aa5bb5ea47fbbd5f35282b331335000
但是如果要把序列[1, 3, 5, 7, 9]
变换成整数13579
,reduce
就可以派上用场:
>>> from functools import reduce>>> def fn(x, y):... return x * 10 + y...>>> reduce(fn, [1, 3, 5, 7, 9])13579
这个例子本身没多大用处,但是,如果考虑到字符串str
也是一个序列,对上面的例子稍加改动,配合map()
,我们就可以写出把str
转换为int
的函数:
>>> from functools import reduce>>> def fn(x, y):... return x * 10 + y...>>> def char2num(s):... return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]...>>> reduce(fn, map(char2num, '13579'))13579
整理成一个str2int
的函数就是:
from functools import reducedef str2int(s): def fn(x, y): return x * 10 + y def char2num(s): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s] return reduce(fn, map(char2num, s))
还可以用lambda函数进一步简化成:
from functools import reducedef char2num(s): return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]def str2int(s): return reduce(lambda x, y: x * 10 + y, map(char2num, s))
阅读全文
0 0
- Python学习笔记(6) -- 字符转数字、字符串转整型(char2num、str2int)
- python 字符转数字(1字节转数字)
- C语言字符串,字符转数字,数字转字符(转)
- C语言字符串,字符转数字,数字转字符(转)
- python字符串转数字
- c/字符串,字符转数字,数字转字符(转)
- C语言字符串,字符转数字,数字转字符
- c/字符串,字符转数字,数字转字符
- C语言字符串,字符转数字,数字转字符
- C语言字符串,字符转数字,数字转字符
- C语言字符串,字符转数字,数字转字符
- c/字符串,字符转数字,数字转字符
- C语言字符串,字符转数字,数字转字符
- c/c++ 字符串,字符转数字,数字转字符
- oracle学习之to_number方法(字符串转数字)
- 字符转数字不使用str.toInt方法转为整型
- 004day(整型,字符,字符串常量)
- 中文字符转数字(可能会很大)
- Git整合学习之Gitlab安装(Centos6)
- RobotFramework安装问题解决
- 合并区间
- 点赞
- java异常处理:finally中不要return
- Python学习笔记(6) -- 字符转数字、字符串转整型(char2num、str2int)
- MFC ---- CString
- Codeforces 429B B. Working out dp
- 微信公众平台开发生成带参数二维码
- JZOJ 1845——约数
- hdu 3015 Disharmony Trees(树状数组)
- BZOJ 1877 [SDOI2009]晨跑 费用流
- XML
- 计算语言学之自信息与互信息在新词发现、短语识别中的应用