在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,并且序列中只包含一个元素,则直接返回序列中的第一个元素。
完整用法演示:
----------喜大普奔----------
1、董付国老师Python系列教材,亚马逊、京东、当当、天猫均有销售:
1)《Python程序设计(第2版)》(2018年5月第6次印刷)
出版社官方链接(亚马逊、京东、当当均有销售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.18.24a52226hIi8Bj&id=534581929248&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
2)《Python可以这样学》(2018年2月第5次印刷)(本书已发行繁体版)
出版社官方链接(亚马逊、京东、当当均有销售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.16.24a52226hIi8Bj&id=544817105410&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
3)《Python程序设计开发宝典》(2018年2月第3次印刷)
出版社官方链接(亚马逊、京东、当当均有销售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.52.24a52226hIi8Bj&id=556093887133&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
4)《中学生可以这样学Python》2018年5月第2次印刷)
出版社官方链接(亚马逊、京东、当当均有销售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.20.24a52226hIi8Bj&id=560808221053&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
5)《Python程序设计基础(第2版)》(2018年5月第2次印刷)
出版社官方链接(亚马逊、京东、当当均有销售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.24.24a52226hIi8Bj&id=565581275846&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
6)《玩转Python轻松过二级》(2018年5月隆重上架)
出版社官方链接(亚马逊、京东、当当均有销售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.84.24a52226hIi8Bj&id=569250004069&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
董付国老师6本Python系列教材被北大、复旦等近百所高校选作教材
2、董老师120课免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59
----------相关阅读----------
教学课件
1900页Python系列PPT分享一:基础知识(106页)
1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)
1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)
1900页Python系列PPT分享四:字符串与正则表达式(109页)
1900页Python系列PPT分享五:函数设计与应用(134页)
1900页Python系列PPT分享六:面向对象程序设计(86页)
1900页Python系列PPT分享七:文件操作(132页)
1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)
报告PPT(163页):基于Python语言的课程群建设探讨与实践
系列题库分享
相关阅读
详解Python函数式编程之map、reduce、filter