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

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、列表生成器的例子。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值