python Lambda, filter, reduce and map
1. lambda
The lambda operator or lambda function is a way to create small anonymous functions , i.e. functions without a name.
可以方便的创造一个函数。比如
def add(x,y): return x+y
用lambda 写就是
lambda x,y:x+y
非常简洁。这条语句会返回一个函数指针,你可以他赋值,或者配合map ,reduce 等操作。
比如说想把list [1,2,3,4,5]的每个值的乘2,返回一个list .
2. map
lambda配合map用是最方便的了。
r = map(func, seq)
map接收一个func 指针,然后把函数作用到seq的每个成员上。
接上面的例子就是 :
map(lambda x:x*2,[1,2,3,4,5])
[2, 4, 6, 8, 10]
3. Filtering
和map 类似 ,只不过他是过滤list,也接受一个func的lambda 表达式,然后如果表达式为真就过滤掉。
filter(function, list)
fib = [0,1,1,2,3,5,8,13,21,34,55]
filter(lambda x: x % 2, fib)
[1, 1, 3, 5, 13, 21, 55]
直接过滤掉偶数的项。
比如说我只要>20的数据
filter(lambda a : a>20 ,fib)
分分钟过滤!
4.Reducing
The function reduce(func, seq) continually applies the function func() to the sequence seq. It returns a single value.
If seq = [ s1, s2, s3, ... , sn ], calling reduce(func, seq) works like this:
[ func(s1, s2), s3, ... , sn ]
[ func(func(s1, s2),s3), ... , sn ]
持续对list 进行func的操作,最终结果是产生一个数值!
reduce(lambda x,y: x+y, [47,11,42,13])
113
比如说这个,依次对47,11 进行相加, 变成 [58,42,13]
然后再相加 [100,13]
113
最新文章
- 支持Cookie并开放了一些特殊设置项的HttpWebClient
- [ASP.NET]书店后台开发-模板页
- ActionScript 3.0 自写类整理笔记(十三)——Random类
- C语言中的回调函数调用过程以及函数指针使用
- Android的图片缓存ImageCache(转)
- location.hash的摘抄
- SqlSever基础 dateadd year,增加五年
- Spark on Yarn遇到的几个问题
- QT5.7交叉编译安装到arm(好多系列文章)
- 001.为什么选择用AngularJs开发?
- BFS:noi6044鸣人与佐助
- webpack打包非模块化js
- FORM当前状态分析
- Ubuntu18.10&;Ubuntu18.04安装Python虚拟环境
- TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络
- Xcode全局替换内容,一键Replace
- 很多人以为 connect 和 disconnect 应该像 new 和 delete 一样成对出现 这是错误的(只要 sender 或 receiver 其中之一不存在了,connect 会自动失效。QObject::connect 函数是线程安全的)
- git 删除 repository
- C# Json字符串反序列化
- 关于SQLserver的索引的一些脚本
热门文章
- 探索ORACLE之ASM概念(完整版)
- (第四篇)Linux命令初识之常用系统管理命令
- openssl 查看证书
- Inno Script - How to make “I Accept the Agreement” radio button on EULA page selected by Default
- 鸟哥Linux私房菜(基础篇)——第五章:首次登入与在线求助 man page笔记
- Spring Boot中Spring data注解的使用
- 自动获取时间html代码
- mysql备份及恢复
- ACM及各类程序竞赛专业术语
- unittest(生成 HTMLTestRunner 模块)