ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 函数式编程 也称为泛函编程 ### 过滤器 filter `filter(func,seq)`为已知序列的每个元素调用给定的布尔函数,返回值为True将添加至新的列表中(接收两个参数) ``` filter(bool, ['hiayng','', None, 0, False]) --> ['hiayng'] filter(lambda x: bool(x), ['hiayng','', None, 0, False]) --> ['hiayng'] ``` > bool可以判断是否为真,为真返回True 此处所用函数需返回值必须为True或者False,如下 ```python def f(x): if x: return True else: return False ``` ![](http://om4h63cja.bkt.clouddn.com/17-3-7/12890866-file_1488869174468_caec.jpg) --- ### 函数映射器 map `map(func,seq1[, seq2...]) `将函数调用“映射”到每个序列的对应元素上并返回一个包含所有返回值 在python2是列表,在python3是生成器 ```python for i in map(lambda x, y, z: x+y+z, [1,2, 3], [1,2 ,3], [1, 2, 3]): print(i) ``` map(None, L1, L2) 在python 3.0废弃 ![](http://om4h63cja.bkt.clouddn.com/17-3-7/62757909-file_1488869174586_545a.jpg) --- ### 折叠器 reduce `reduce(func, seq[, init])` 将二元函数作用于序列的元素,每次携带一对(先前的结果和下一个序列元素)进行函数运算,最后返回单一的值,也可以给定初始值 `reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`