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 – 与布尔numpy数组VS PEP8 E712的比较
- 将电子表格的列存储在Python字典中
- Django i18n blocktrans vs trans
- python – 如何在DataFrame中增加groupby中的行数
- 在Python的Cmd.cmd中完成filename tab-completion
- Python合并两个字典的常用方法与效率比较
- python相当于scala分区
- python – django collectstatic overriding
- python – 与Arduino的串行通信仅在屏幕运行时有效
- python – 如何在PyCharm中找到所有未使用的类的方法?
- python – SQLAlchemy:排除从查询中的子查询中获
- python – Tkinter Canvas将项目移动到顶层
- python – 从defaultdict获取原始密钥集
- python芹菜max-tasks-per-child-setting默认值
- python – 使用Tensorflow中的多层感知器模型预测
- python – 最终确保一些代码以原子方式运行,无论
- python – 带smtp.gmail的Django电子邮件SMTPAut
- python – 方法中的单个字符串或字符串列表
- python – 为什么pow(x,y)的时间复杂度为O(1),而
- python – GTK标签包装在一个对话框中