map/reduce、列表生成器简单介绍

本文详细介绍了Map Reduce的概念及使用方法,并通过具体实例展示了它们如何简化编程任务。此外,还对比了列表生成式的应用及其与Map Reduce的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map/reduce 属于高阶函数

map第一个参数是函数f,第二是f的参数amap的返回值是参数a是经过函数f运算后的返回结果集合。

例子:

def f(x):
    return x + x
[r for r in map(f,[1,2,3,4])]
输出的是:

[2, 4, 6, 8]

与之等价的列表生成式:

[f(r) for r in [1,2,3,4]]
输出的结果与上面一致

reduce第一个参数也是f,第二是f的参数a,这里与map一致,差异在对函数f调用处理,reduce是递归调用f对参数a的运算。注:函数f必须是可以接受两个参数,参数a必须含有两个元素以上的集合

例子:

from functools import reduce
def f(x,y):
    return x*y
r = reduce(f,[1,2,3,4,5])
r
输出的结果:
120


 

与之对应的非reduce

r = f(f(f(f(1,2),3),4),5)
r
输出的结果:120



对于列表生成式是相对比较简单的,当然高级的使用方式另说,其格式为

[expr for iter_var initerable]

[expr for iter_var initerable if cond_expr]

 

简单的例子如下:

a = [r for r in [1,2,3,4]]
a
输出的结果:
[1, 2, 3, 4]


与之等效的迭代结构:

a = []
for r in [1,2,3,4]:
    a.append(r)
a
输出的结果:
[1,2,3,4]

这里仅仅是超级粗糙和简单的使用map、reduce、列表生成器的例子。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值