【小白从小学Python、C、Java】【Python-计算机等级考试二级】【Python中的reduce()函数】

知识精讲
1.描述:reduce()函数会对按照数据集合中的多个元素,按照先后顺序进行迭代运算,即把前面参与运算的元素的运算结果作为新元素,再与后面的元素进行运算,以此类推,一直运算到最后一个元素。
2.reduce()语法和参数:
2.0语法:reduce(function, sequence[,initial])
2.1参数function:每次迭代计算依据的函数,注意:function有且只有2个参数;
2.2参数sequence:表示数据集合,集合中的元素从前向后依次参与迭代计算;
2.3参数initial:表示初始值,是可选参数,即迭代计算开始前,结果变量的初值。也可以理解initial是再之前两个元素之和:
2.3.1若函数没有定义initial,则该reduce()方法直接对sequence集合的第一、二个元素按照函数function的方法进行计算,得到的结果再与第三个元素用function函数运算;
2.3.2若函数定义了可选参数initial,则最先进行的是初始值和数据集合第一个元素的运算,然后把运算结果再与数据集合的第二个元素进行运算,以此类推,最后得到一个结果。
3.返回值:该函数返回最后计算的结果。
4.注意事项:reduce()函数在python2中是内置函数,从python3开始移到functools模块,如果我们要使用,需要引入 functools模块来调用reduce()函数。

欢迎大家转发,一起传播知识和正能量,帮助到更多人。期待大家提出宝贵改进建议,互相交流,收获更大。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

选择题
以下程序的输出结果是:
from functools import reduce
def add(a,b):
        return(a+b)
sum1 = reduce(add,[1,2,3,4,5])
sum2 = reduce(add,[1,2,3,4,5],6)
print(sum1,sum2)
选项:
A 5 6
B 15 6
C 5 21
D 15 21

试题解析
题目中定义先分别定义了加法函数add,其次调用reduce函数对列表[1,2,3,4,5]中的元素进行累加运算,所以sum1的值为15;在sum2的计算中,ruduce函数定义了可选参数initial为6(可以理解为:6是之前另外两个数的和),所以在运算时,先将可选参数6和列表中第一个元素1做加法运算,把得到的结果再与列表第二个元素进行加法运算,以此类推,最终得到sum2的值为6+1+2+3+4+5=21。

答案
正确答案为:D

 温馨期待
期待大家提出宝贵建议,互相交流,收获更大,助教:qmy


 

猜你喜欢

转载自blog.csdn.net/liujingwei8610/article/details/120876998