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 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- python – 应用引擎:字符串到datetime?
- python – 有效地减去不同形状的numpy数组
- 无法弄清楚如何在此Python代码中重新分配列表中的元素
- python – Django不调用model clean方法
- django或playframework
- python – Sublime Text 3 API:从文件获取所有文本
- Python求两个文本文件以行为单位的交集、并集与差集的方法
- python-2.7 – OpenCV:libdc1394错误:无法初始化libdc139
- python /烧瓶/ Jinja2和Json
- python – 如何在PyCharm中找到所有未使用的类的方法?