Python 3.x中reduce()函数完整用法

在Python 3.x中,reduce()不再是内置函数,而是移到了标准库functools中,需要先导入再使用,其官方解释如图所示:

从官方文档可知,该函数用法要点如下:

1)把一个双参数函数以累积的方式从左向右依次作用到序列中的元素上,最终得到单个值。例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])计算过程为((((1+2)+3)+4)+5)。在函数function的两个参数中,左边的参数x是被累积的值,而右边的参数y是依次从序列中获取的值。这也是最常见的用法,在拙作《Python可以这样学》和《Python程序设计开发宝典》中都使用了下图进行了演示,配套PPT有这样一页:

2)提供可选参数initializer时,如果序列非空则将其放置到序列元素之前参与计算,如果序列为空则作为默认值直接返回。

3)如果没有提供可选参数initializer,并且序列中只包含一个元素,则直接返回序列中的第一个元素。

完整用法演示:

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2018-05-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Dawnzhang的开发者手册

数据结构与算法学习笔记之 从0编号的数组

数组看似简单,但掌握精髓的却没有多少;他既是编程语言中的数据类型,又是最基础的数据结构;

1233
来自专栏我是攻城师

Python之numpy的ndarray数组使用方法介绍

NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括:

1313
来自专栏Redis源码学习系列

Redis源码学习之压缩列表

压缩列表是列表对象、哈希对象和有序集合对象的底层实现之一。以列表对象为例,当列表节点都是比较小的整数或者比较短的字符串的时候,Redis就会选择压缩列表来做底层...

790
来自专栏xx_Cc的学习总结专栏

iOS底层原理总结 - Category的本质

iOS底层原理总结 - Category的本质 面试题 Category的实现原理,以及Category为什么只能加方法不能加属性。 Category中有loa...

3776
来自专栏magicsoar

Effective Modern C++翻译(4)-条款3:了解decltype

条款3 了解decltype decltype是一个有趣的东西,给它一个变量名或是一个表达式,decltype会告诉你这个变量名或是这个表达式的类型,通常,告诉...

1889
来自专栏书山有路勤为径

复杂的链表的深度拷贝

Copy List with Random Pointer 已知一个复杂的链表,节点中有一个指向本链表任意某个节点的碎甲指针(也可以为空),求这个链表的深度拷...

681
来自专栏磐创AI技术团队的专栏

Python开发的十个Tips,你知道几个?

下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。

892
来自专栏前端布道

图解javascript this指向什么?

JavaScript 是一种脚本语言,支持函数式编程、闭包、基于原型的继承等高级功能。JavaScript一开始看起来感觉会很容易入门,但是随着使用的深入,你会...

4169
来自专栏Java 源码分析

数据结构Stack

​ 在很多应用中,我们需要维护多个对象的集合,这种操作非常简单。我们可能想要向集合中 加入某个元素,去掉某个元素,以及遍历 集合中的元素并对他们执行某种操...

3316
来自专栏Vamei实验室

Python深入04 闭包

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 闭包(closure)是函数式编程的重要的...

20410

扫码关注云+社区