Python的map、filter、reduce函数

摘要:
mapped_seq.append(func(eachItem))returnmapped_seqfilter函数相当于一个过滤器。deffilter(布尔函数,如果布尔函数(每个项):

map函数func作用于给定序列的每个元素,并用一个列表来提供返回值。
map函数python实现代码:


def map(func,seq): 
    mapped_seq = [] 
    for eachItem in seq: 
        mapped_seq.append(func(eachItem)) 
    return mapped_seq

filter函数的功能相当于过滤器。调用一个布尔函数bool_func来迭代遍历每个seq中的元素;返回一个使bool_seq返回值为true的元素的序列。

filter函数python代码实现:


def filter(bool_func,seq): 
    filtered_seq = [] 
    for eachItem in seq: 
        if bool_func(eachItem): 
            filtered_seq.append(eachItem) 
    return filtered_seq

reduce函数,func为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值。

reduct函数python代码实现:


def reduce(bin_func,seq,initial=None): 
    lseq = list(seq) 
    if initial is None: 
        res = lseq.pop(0) 
    else: 
        res = initial 
    for eachItem in lseq: 
        res = bin_func(res,eachItem) 
    return res

下面是测试的代码


#coding:utf-8
def map_func(lis):
    return lis + 1
def filter_func(li):
    if li % 2 == 0:
        return True
    else:
        return False
        
def reduce_func(li, lis):
    return li + lis
    
li = [1,2,3,4,5]
map_l = map(map_func, li) #将li中所有的数都+1
filter_l = filter(filter_func, li) #得到li中能被2整除的
reduce_l = reduce(reduce_func, li) #1+2+3+4+5
print map_l
print filter_l
print reduce_l

运行结果如下:

C:\>python test1.py

[2, 3, 4, 5, 6]

[2, 4]

15

免责声明:文章转载自《Python的map、filter、reduce函数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【0】随机事件与概率的基本定义常见局域网类别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

通过Python收集汇聚MySQL 表信息

一.需求 统计收集各个实例上table的信息,主要是表的记录数及大小。 收集的范围是cmdb中所有的数据库实例。 二.公共基础文件说明 1.配置文件 配置文为db_servers_conf.ini,假设cmdb的DBServer为119.119.119.119,单独存放收集监控数据的DBserver为110.110.110.110. 这两个DB实例的访问...

php实现文件下载代码一例

php实现文件下载代码 需要用到header函数来发送相关信息给客户端浏览器,同时再结合filesize函数来读取文件大小并进行下载操作。简单的文件下载只需要使用HTML的连接标记<a>,并将属性href的URL值指定为下载的文件即可。 文件下载,只能处理一些浏览器不能默认识别的MIME类型文件,例如当访问book.rar文件时,浏览器并没有直...

QT信号槽详解

1         QT信号槽详解 1.1  信号和槽的定义 信号是触发信号,例如按钮的点击触发一个clicked信号,槽是用来接收信号,并处理信号,相当于信号响应函数。一个信号可以关联多个槽函数,信号也可以连接信号。 要使用信号槽,类必须继承与QObject类或者其子类,否则无法识别槽函数错误。在类的定义开头需要添加宏定义Q_OBJECT。如下 clas...

EXPORT_SYMBOL的作用是什么

http://www.cnblogs.com/riskyer/p/3221805.html EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动 导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的。 2.6就必须用EXPORT_SYMBOL() 来导出来(因为2.6默认不到处所有的符...

Docker mysql主从配置

一:Mysql基于Docker的主从复制搭建 1:安装docker,安装步骤可见我之前的文章:Docker-常用基建的安装与部署 docker ps 命令查询当前的容器状态,这就是我们最后要达到的效果。 2:首先拉取mysql官方镜像 bash> docker pull mysql:5.7 演示环境是在同一台服务器上部署。因为docker创建容器时...

MFC- socket 编程

一、CAsyncSocket类 CAsyncSocket属于异步非阻塞类。 CAsyncSocket类采用了windows socket中的WSAAsyncSelect模型。CAsyncSocket 类是在很低的层次上对windows socket API进行了封装,它的成员函数和winsock API的函数调用直接对应,一个CAsyncSocket对象代...