博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的map、filter、reduce函数
阅读量:5061 次
发布时间:2019-06-12

本文共 1187 字,大约阅读时间需要 3 分钟。

map函数,对seq列表的每一个元素调用func函数,形成一个新的列表,map函数返回此新的列表。

map函数python实现代码:

1 def map(func,seq): 2     mapped_seq = [] 3     for eachItem in seq: 4         mapped_seq.append(func(eachItem)) 5     return mapped_seq

filter函数的功能相当于过滤器。调用一个返回值为bool型的函数bool_func,来遍历每个seq中的元素,返回seq中由所有符合要求元素生成的新列表。

filter函数python代码实现:

1 def filter(bool_func,seq): 2     filtered_seq = [] 3     for eachItem in seq: 4         if bool_func(eachItem): 5             filtered_seq.append(eachItem) 6     return filtered_seq

reduce函数,从seq列表中去两个元素传给bin_func作为参数, 计算结果作为bin_func的第一个参数,再从seq列表中取一个元素,作为bin_func的第二个参数,依次类推,直到遍历完所有seq中的元素,返回计算结果res。

--bin_func必须为二元函数。

--python3.x中已移除此函数。

reduct函数python代码实现:

1 def reduce(bin_func,seq,initial=None): 2     lseq = list(seq) 3     if initial is None: 4         res = lseq.pop(0) 5     else: 6         res = initial 7     for eachItem in lseq: 8         res = bin_func(res,eachItem) 9     return res

 举例说明: 

1 def add(x, y): 2     return x + y 3 print reduce(add,[1,2,3,4]) 4 >>>10

计算过程演示如下:

1 reduce(add,[1,2,3,4]) 2     res = add(1,2) 3     res = add(res,3) 4     res = add (res,4) 5     return res

亲,明白了么,好像明白了。

 

转载于:https://www.cnblogs.com/evening/archive/2012/04/01/2428413.html

你可能感兴趣的文章
2. Postman发送各种格式请求的方法
查看>>
Spring mvc annotation and xml example
查看>>
关于报错The specified child already has a parent的解决办法
查看>>
16 this和构造代码块
查看>>
LIN总线学习-总线逻辑
查看>>
Uva(10305)
查看>>
调整数组顺序使奇数位于偶数前面
查看>>
React Native知识3-TextInput组件
查看>>
MDK 添加芯片支持 以STM32F103ZE为例
查看>>
搭建 flask 应用
查看>>
C++ 约瑟夫环问题
查看>>
制作iOS应用图标的最简单方法
查看>>
IDEA项目里Maven 的Plugins出现红线的解决方法
查看>>
图片自动播放的案例
查看>>
中止线程
查看>>
linux的scp命令可以在linux服务器之间复制文件和目录
查看>>
SQL语句在查询分析器中可以执行,代码中不能执行
查看>>
yii 1.x 添加 rules 验证url数组
查看>>
html+css 布局篇
查看>>
银行排队问题(详解队列)
查看>>