Python 函数式编程之lambda
来源:互联网 发布:手机加速软件 编辑:程序博客网 时间:2024/06/06 01:37
Python 是门多范式的编程语言,它支持函数式编程(只支持部分,不是完全的支持),其中的lambda 匿名函数就是借鉴了Lisp。
1. 什么是匿名函数?
所谓匿名函数,从功能上讲相当于一个函数,但本质上是个表达式,它返回一个函数对象。那为什么我们还需要匿名函数呢?答案是,如果一个函数功能相对较简单时,使用匿名函数替代让代码显得更简洁,也就是更Pythonic!
先来看看使用自定义函数和使用lambda 匿名函数的各自实现:
#自定义函数>>> def add(x, y): return x+y>>> add(2, 3)5#使用lambda>>> a = lambda x, y: x+y>>> a(2, 3)5
使用lambda构建的表达式,返回的对象是函数,所以,需要赋给一个对象,然后再调用这个函数。当然,也可以直接采用下面这种方式直接调用:
>>> (lambda x, y: x+y) (2, 3) # 实时定义并调用5
2. lambda 的格式和应用
格式:lambda [参数]: 表达式
lambda 中的参数与函数的参数相对应,表达式也函数中的语句相对应。实际上,lambda 常常与filter(), map(), reduce() 这几个函数组合在一起用。如:
>>> foo[2, 18, 9, 22, 17, 24, 8, 12, 27]>>> print filter(lambda x: x%3==0, foo)[18, 9, 24, 12, 27]>>> print map(lambda x: x*2+10, foo)[14, 46, 28, 54, 44, 58, 26, 34, 64]
如上面所说,使用lambda 只是为了让代码更简洁易懂的情况下才使用,如果一味的使得lambda 而让代码可读性变差,是不可取的,比如用以下方式来打印九九口诀表:
print '\n '.join(map(lambda x: ' '.join(map(lambda y: "%s x %s = %s " % (x, y, x * y), range(1,10))), range(1,10)))
0 0
- Python 函数式编程之lambda
- Python函数式编程之lambda
- python函数式编程之匿名函数lambda
- python 函数式编程 <lambda>
- python lambda函数 与 函数式编程
- Python函数式编程之lambda表达式,reduce函数、map函数、filter函数
- java函数式编程之lambda表达式
- python函数式编程:apply, map, lambda和偏函数
- Python函数式编程——匿名函数lambda
- 【Python学习笔记】函数式编程:匿名函数lambda
- python之匿名函数lambda
- Python函数式编程学习:lambda, map, reduce, filter
- Python函数式编程学习:lambda, map, reduce, filter
- 『 Python笔记』 lambda表达式和函数式编程
- Python函数式编程-map()、zip()、filter()、reduce()、lambda()
- Python函数式编程(map、reduce、filter、lambda)
- 函数式编程特点之-lambda演算
- 函数式编程之 Lambda 表达式的引出_Java8 实践
- IOS开发——网络编程总汇
- 图片不存在时,火狐(FireFox)不显示红色叉(图片占位符)的解决方法。
- 俄罗斯方块——Java版
- Eclipse代码格式化设置
- easyui 动态列
- Python 函数式编程之lambda
- 2014 Multi-University Training Contest 5Matrix multiplication(HDOJ 4920)
- 如何实现百分百的数据安全防护?!
- XMPP协议的原理介绍
- Add Binary
- 02 dom解析
- OpenvSwitch概念和原理
- servlet/filter/listener/interceptor区别与联系
- wikioi1068乌龟棋