一 reduce() 函数 是python 的 模块的内容,是关于累 的 计算python
在调用的时候先导入reduce模块app
reduce() 接收的参数有两个,reduce(function,sequence)函数
reduce() 对 sequence (序列) 中的每个元素反复调用function,并返回最终结果spa
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,code
可是利用 reduce()也很简单blog
reduce() 还能够接受第3个参数,做为计算的初始值,若是把初始值设置成100,计算:it
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)io
它接收一个函数func 和 一个 list,并经过把函数func 依次做用在 list 的每个元素上function
获得一个新的list 并返回class
例如: 对于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 能够处理这类数据类型