python细节之——lambda
来源:互联网 发布:后二计算软件 编辑:程序博客网 时间:2024/05/21 15:13
写在前面的话:犹记得实习面试的时候面试官问我会用python吗,我说会一点,然后面试官说那你说下lambda吧,我:???,当年为了写一个算法奉行拿来主义,半懂不懂得就把python拿来用了,根本没想过深入去学。现在接触了一点用python写脚本,就把lambda做个整理吧~
在此之前,先看个例子来理解一下,对于if else语句,可以使用三元运算来简化其表示:
注:python 2.x中可以直接print sex,但是python 3.x需要加括号
同样,lambda是一个表达式,定义了一个匿名函数。直白一点说也可以把它理解成一种简化的函数的表示方式,先来看一个最简单的例子
从上可以看出,lambda的主体是一个表达式,x为入口参数(即C/C++里常说的形参),x*2为函数体,y相当于函数的返回值,用函数来书写即为:
def y(x): return x*2
与函数相同,它的入口参数可以为多个,如:
不仅如此,lambda表达式也可以进行嵌套:
其中,f(3)令y=3,返回f1=(x+3)*4,f1(4)令x=4,得到最终结果21,后两个同理。可知,lambda嵌套的顺序是由内向外的,用def函数定义可表示为:
可以看到,函数定义的方式与lambda嵌套的方式参数传入的顺序是相反的,即由外向里。
此外,python中有几个常用的全局函数可与lambda配套使用,具体如下:
(1)filter:对于序列中的元素进行筛选,最终获取符合条件的序列
注意:这里我用的是python3.5,3.x的Python里filter返回的是iterator类型,不能直接打印,需要用list()将其转化过来,下面同理
(2)map:遍历序列,对序列中每个元素进行操作,最终获取新的序列。
(3)reduce:对于序列内所有元素进行累计操作
注:在python 3.x中, reduce已经不在built-in function里了, 要用它就得from functools import reduce.
详见The fate of reduce() in Python 3000
最后,虽然lambda使得代码更为简洁,但是不如直接用函数表示的方式来的直观,同时它的应用也因为表达式的书写而受限,即仅能用于封装有限的逻辑进去。
阅读全文
0 0
- python细节之——lambda
- Python基础语法之——Lambda
- Lambda表达式之Python
- Python之lambda
- python之关于lambda
- Python之lambda
- python之lambda表达式
- python之lambda
- python基础知识之 lambda
- python之一些细节
- Python 高级特性之 lambda
- python之lambda简单示例
- Python 之 zip,map,lambda
- python之匿名函数lambda
- Python的匿名函数——lambda
- Python 基础 —— 匿名函数 lambda
- Python基础学习篇—lambda
- python二之函数细节
- hdu-1176 免费馅饼
- Tensorflow 变量
- 2017.7.14 C组总结
- MFC下的ColeDateTime类转化QT下的QDateTime类的实现方法,深入讲解QDQDateTime,Double的时间转化QDateTime
- Servlet的用处(个人理解)
- python细节之——lambda
- Java.5集合框架
- 关于郭天祥51单片机教程视频课后题《同时用两个定时器控制蜂鸣器发声》
- Nginx 反向代理、负载均衡、页面缓存、URL 重写及读写分离详解
- JS编程训练 | 题13:查找元素位置
- JDBC环境搭建(IDEA开发工具)
- 【HNOI2016模拟4.4】Stage
- navicat连接oracle
- 【表单】illuminate/html与laravelcollective/html【原创】