Python编程基础:第五十七节 reduce函数Reduce

第五十七节 reduce函数Reduce

前言

reduce函数的作用是逐项将迭代器的前两项按照指定方式进行计算,例如我们有一个数字列表[1, 2, 3, 4]我们可以使用reduce函数求这四个数的和,首先计算1+2=3,然后计算3+3=6,最后计算6+4=10。reduce函数的书写方式为:reduce(function, iterable),第一个参数指定作用方式,第二个参数指定被作用对象,其执行方式相当于:

for i in range(len(iterable)):
    if len(iterable) != 1:
        result = function(iterable[0], iterable[1])
        iterable.remove(iterable[0])
        iterable.remove(iterable[0])
        iterable.insert(0, result)
    else:
        break

实践

我们首先以字母拼接为字符串为例讲解reduce函数的使用方式,首先创建一个全为字母的列表:

import functools
letters = ["H", "e", "l", "l", "o"]

然后我们通过匿名函数指定字母之间的拼接方式,并通过reduce函数对其进行逐项使用:

word = functools.reduce(lambda x, y: x + y, letters)
print(word)
>>> Hello

可见与下述代码运行结果相同:

for i in range(len(letters)):
    if len(letters) != 1:
        result = letters[0]+letters[1]
        letters.remove(letters[0])
        letters[0] = result
    else:
        break

print(letters)
>>> Hello

我们再给出一个数字两两相乘的例子:

digits = [1, 2, 3, 4, 5, 6]
result = functools.reduce(lambda x, y: x * y, digits)
print(result)
>>> 720

以上便是reduce函数的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍递推式构造列表(List Comprehension),敬请期待~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值