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))

最新文章

  1. 引用对象的使用和易产生bug的示例
  2. java jvm常用命令工具
  3. [HDU4507]吉哥系列故事——恨7不成妻
  4. 再过几个月Apple Watch就要正式发布了
  5. Codeforces Round #249 (Div. 2)B(贪心法)
  6. jmeter笔记3
  7. linux命令(7)killall
  8. div高度自适应填充剩余部分
  9. bzoj 3851: 2048 dp优化
  10. PHP用户登录与注册页面
  11. Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性
  12. 面向对象UML中类关系
  13. Java 浅拷贝和深拷贝的理解和实现方式
  14. Python(一)字符串用法
  15. 使用commons-csv简单读写CSV文件
  16. 文件自动备份和同步bypy和syncthing
  17. [Swift]LeetCode732. 我的日程安排表 III | My Calendar III
  18. Django之BBS博客项目
  19. jq ajax数据交互
  20. 梯度消失(vanishing gradient)和梯度爆炸(exploding gradient)

热门文章

  1. Python+Selenium与Chrome如何进行完美结合
  2. eclipse3.4+对的处理插件(附SVN插件安装实例)
  3. C# 使用解析json 嵌套方法
  4. BandwagonHost 5个数据中心/机房Ping速度测试亲自体验
  5. 关系代数演算So Easy
  6. 【转】实用API大全
  7. HomeKit开发(一)
  8. C/C++基础知识:函数指针和指针函数的基本概念
  9. 51nod——1391 01串(字符串、前缀和)
  10. Java-basic-3-运算符-修饰符-循环