一 reduce() 函数 是python 的 模块的内容,是关于累 的 计算
在调用的时候先导入reduce模块
reduce() 接收的参数有两个,reduce(function,sequence)
reduce() 对 sequence (序列) 中的每一个元素反复调用function,并返回最终结果
from functools import reduce def func(a,b): return a+ b ret = reduce(func,[1,2,3,4,5]) print(ret)
ret = reduce(lambda x ,y:x+y,[1,2,3,4,5]) print(ret)
s = sum([1,2,3,4,5])
print(s)
# 结果是 15
上述计算实际上是对 list 的所有元素求和,虽然 python 内置了求和函数 sum,
但是利用 reduce()也很简单
reduce() 还可以接受第3个参数,作为计算的初始值,如果把初始值设置成100,计算:
from functools import reduce def func(a,b): return a+ b ret = reduce(func,[1,2,3,4,5],100) print(ret) # 结果就是 115
二 map()函数 是 python 内置的高阶函数,map(func,iter1)
它接收一个函数func 和 一个 list,并通过把函数func 依次作用在 list 的每一个元素上
得到一个新的list 并返回
例如: 对于list[1,2,3,4,5,6,7,8,9]
如果 希望把 list 的每一个元素都作 平方,就可以用函数 map()
因此,我们只需要传入 函数 f(x) = x * x ,就可以利用 map()函数完成这个计算
lst = [1,2,3,4,5,6,7,8,9] # 1.可以用函数方法实现 def func(x): return x * x ret = list(map(func,lst)) print(ret) # 2.可以用 lambda 函数实现 ret = list(map(lambda x:x**2,lst)) print(ret) #3. for 循环也可以做到 lst_new = [] for i in lst: lst_new.append(i *i) print(lst_new)
# 输出结果清一色的: [1, 4, 9, 16, 25, 36, 49, 64, 81]
注意: map() 函数不改变原有的list,而是返回一个新的 list
利用 map()函数,可以把一个 list 转换为 另外一个 list,只需要传入转换函数
由于 list 包含的元素可以是 任何类型,因此,map() 不仅仅可以处理只包含数值的list
事实上它可以处理包含任意类型的list,只需要传入的 func 可以处理这类数据类型