python-内置函数reduce

一、描述

reduce() 函数会对参数序列中元素进行累积。

函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

二、语法

reduce() 函数语法:

reduce(function, iterable[, initializer])

三、参数

  • function -- 函数,有两个参数
  • iterable -- 可迭代对象
  • initializer -- 可选,初始参数

四、返回值

返回函数计算结果。

五、实例

"""
需求:计算列表之和、积
"""


def multi(x, y):
    return x * y


def add(x, y):
    return x + y


def reduce_test(func, array, init=None):
    if init is None:
        res = array.pop(0)
    else:
        res = init
    for i in array:
        res = func(res, i)
    return res


# num_list = [1, 2, 3, 100]
print("使用自定义函数实现计算列表之和、积")
num_list1 = [12, 3, 4, 1]
print("计算列表之和:", reduce_test(add, num_list1))
num_list1 = [12, 3, 4, 1]
print("计算列表之和,基数为2:", reduce_test(add, num_list1,2))
num_list1 = [12, 3, 4, 1]
print("计算列表之积:", reduce_test(multi, num_list1))
num_list1 = [12, 3, 4, 1]
print("计算列表之积,基数2:", reduce_test(multi, num_list1, 2))
print("-"*40)

print("使用自定义函数和匿名函数结合实现计算列表之和、积")
num_list2 = [12, 3, 4, 1]

print("计算列表之和:", reduce_test(lambda x, y: x + y, num_list2))
num_list2 = [12, 3, 4, 1]
print("计算列表之和,基数为2:", reduce_test(lambda x, y: x + y, num_list2, 2))
num_list2 = [12, 3, 4, 1]
print("计算列表之积:", reduce_test(lambda x, y: x * y, num_list2))
num_list2 = [12, 3, 4, 1]
print("计算列表之积,基数2:", reduce_test(lambda x, y: x * y, num_list2, 2))
print("-"*40)

print("使用内置函数reduce结合实现计算列表之和、积")
from functools import reduce

num_list3 = [12, 3, 4, 1]

print("计算列表之和:", reduce(lambda x, y: x + y, num_list3))
num_list3 = [12, 3, 4, 1]
print("计算列表之和,基数为2:", reduce(lambda x, y: x + y, num_list3, 2))
num_list3 = [12, 3, 4, 1]
print("计算列表之积:", reduce(lambda x, y: x * y, num_list3))
num_list3 = [12, 3, 4, 1]
print("计算列表之积,基数2:", reduce(lambda x, y: x * y, num_list3, 2))

 输出结果

使用自定义函数实现计算列表之和、积
计算列表之和: 20
计算列表之和,基数为2: 22
计算列表之积: 144
计算列表之积,基数2: 288
----------------------------------------
使用自定义函数和匿名函数结合实现计算列表之和、积
计算列表之和: 20
计算列表之和,基数为2: 22
计算列表之积: 144
计算列表之积,基数2: 288
----------------------------------------
使用内置函数reduce和匿名函数结合实现计算列表之和、积
计算列表之和: 20
计算列表之和,基数为2: 22
计算列表之积: 144
计算列表之积,基数2: 288

 

posted on 2019-10-31 15:16  别动我的锅  阅读(294)  评论(0)    收藏  举报

导航

levels of contents