map and reduce
1.map()
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
例1:
ls = [1,2,3,4,5,6,7,8,9]
fx = lambda x:x**2
rst = map(fx, ls)
print(list(rst))
例2:
int2str = lambda x : str(x)
rst = map(int2str, ls)
list(rst)
2.reduce()
reduce: 用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,依此类推,最后得到一个结果。
例1:
from functools import reduce
# 从python3开始,reduce函数移动到了functools这个包,每次使用前要先import
mul_xy = lambda x, y: x*y
reduce(mul_xy, [1, 3, 5, 7, 9])
例2:
# 求n的阶乘
from functools import reduce
n = int(input("请输入一个数:"))
jiecheng = lambda x, y: x * y
reduce(jiecheng, [i for i in range(1, n+1)])