在 Python3 中,reduce() 函数已经被从全局命名空间里移除了,它现在被放置在 functools 模块里,需要通过引入 functools 模块来调用 reduce() 函数:
from functools import reduce
- reduce函数会对参数序列中元素进行累加;
- reduce()传入的函数 f 接收两个参数;
- reduce函数的定义:
reduce(function, sequence [, initial] ) -> value # function参数接收两个参数,reduce依次从sequence中取一个元素,和上一次调用function的结果做参数再次调用function。 # 第一次调用function时,如果提供initial参数,会以sequence中的第一个元素和initial作为参数调用function,否则会以序列sequence中的前两个元素做参数调用function。
1.无initial参数:求1-100的和
from functools import reduce values = reduce(lambda x,y:x+y, range(1,101)) print(values) # 5050
2.有initial参数:求1-100的和,设置initial为100。注意:不书写initial
1 from functools import reduce 2 3 values = reduce(lambda x,y:x+y, range(1,101), 100) 4 print(values) 5 6 # 5150