Python lambda和Python def区别分析
Python支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做lambda的函数,是从Lisp借用来的,可以用在任何需要函数的地方。 lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? >>> def f(x): ... return x+2 ... >>> f(1) 3 >>> f = lambda x:x+2 >>> f(1) 3 >>> (lambda x:x+2)(1) 3 Python def和Python lambda它们有相似点也有不同点。 上面是相同点,那么有那些不同点? Python里面语句是可以嵌套的,比如你需要根据某个条件来定义方法,那只能用def。用lambda就会报错。 >>> if a==1: ... def info(): ... print '1'*5 ... else: ... def info2(): ... print 'info2' 而有的时候你需要在python表达式里操作的时候,那需要用到表达式嵌套,这个时候Python def就不能得到你想要的结果,那只能用Python lambda,如下例子: >>> str='www.linuxeye.com linuxeye.com' >>> L = ([(i,str.count(i)) for i in set(str)]) [(' ',1),('c',2),('e',4),('i',('m',('l',('o',('n',('u',('w',3),('y',('x',('.',3)] >>> L.sort(key = lambda k:k[1],reverse = True) >>> print L[0][0] e (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- django – Travis:“创建测试数据库时出错:创建数据库的权
- python – 在一个表达式中打印前n个斐波那契数列
- python – gcloud.exceptions.Forbidden:403权限丢失或不足
- python – 使用PyGtk时,GUI未从其他线程更新
- python – 使用Numpy stride_tricks获取非重叠的数组块
- Python求两个文本文件以行为单位的交集、并集与差集的方法
- Python可以生成类似于bash的set -x的跟踪吗?
- python爬虫防止IP被封的方法
- python – 为什么不能引用似乎由解释器自动加载的模块而没有
- 控制使用python调用外部命令的子进程数