Python 函数 —— map(), reduce()

map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

In [9]: a=[1]*10

In [10]: a
Out[10]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

In [11]: def my_double(x):
    ...:     return 2*x
    ...:

In [12]: map(my_double, a)
Out[12]: <map at 0x281d5a99d30>

In [13]: list(map(my_double, a))
Out[13]: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]

reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
In [16]: from functools import reduce

In [10]: a
Out[10]: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

In [14]: def my_sum(x,y):
    ...:     return x+y
    ...:

In [18]: reduce(my_sum, a)
Out[18]: 10

In [19]: a='wqeqeqweqweqeqweqwe'

In [20]: b='wqeqeqweqwreqeqweqwe'

In [21]: c=list(map(ord,a+b))

In [22]: c
Out[22]:
[119,
 113,
 101,
 113,
 101,
 113,
 119,
 101,
 113,
 119,
 101,
 113,
 101,
 113,
 119,
 101,
 113,
 119,
 101,
 119,
 113,
 101,
 113,
 101,
 113,
 119,
 101,
 113,
 119,
 114,
 101,
 113,
 101,
 113,
 119,
 101,
 113,
 119,
 101]

In [23]: import operator

In [24]: reduce(operator.xor, c)
Out[24]: 114

In [25]: chr(114)
Out[25]: 'r'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值