[python学习篇][廖雪峰][4]函数--reduce
2024-08-29 19:58:02
reduce的用法。reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
整理一个str to int的函数:
>>> def fn(x, y):
return x * 10 + y
... ...
>>> def char2num(s):
return {'' : 0, '' : 1, '' : 2, '' : 3, '' : 4, '' : 5, '' : 6, '' : 7, '' : 8, '' : 9}[s]
... ...
>>> reduce(fn, map(char2num, ''))
13579
>>> {'':0}['']
0
>>> {'':0, '' : 1}['']
1
整理成一个str2int的函数就是: def str2int(s):
def fn(x, y):
return x * 10 + y
def char2num(s):
return {'': 0, '': 1, '': 2, '': 3, '': 4, '': 5, '': 6, '': 7, '': 8, '': 9}[s]
return reduce(fn, map(char2num, s))
def char2num(s):
return {'': 0, '': 1, '': 2, '': 3, '': 4, '': 5, '': 6, '': 7, '': 8, '': 9}[s] def str2int(s):
return reduce(lambda x,y: x*10+y, map(char2num, s))
最新文章
- 引用对象的使用和易产生bug的示例
- java jvm常用命令工具
- [HDU4507]吉哥系列故事——恨7不成妻
- 再过几个月Apple Watch就要正式发布了
- Codeforces Round #249 (Div. 2)B(贪心法)
- jmeter笔记3
- linux命令(7)killall
- div高度自适应填充剩余部分
- bzoj 3851: 2048 dp优化
- PHP用户登录与注册页面
- Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
- 面向对象UML中类关系
- Java 浅拷贝和深拷贝的理解和实现方式
- Python(一)字符串用法
- 使用commons-csv简单读写CSV文件
- 文件自动备份和同步bypy和syncthing
- [Swift]LeetCode732. 我的日程安排表 III | My Calendar III
- Django之BBS博客项目
- jq ajax数据交互
- 梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)