第五十七节 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] = resultelse:breakprint(letters)
>>> Hello

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

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

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

Python编程基础:第五十七节 reduce函数Reduce相关推荐

  1. Python编程基础:第二十七节 format输出Format

    第二十七节 format输出Format 前言 实践 前言 在前面的学习中我们已经接触过str.format()的输出格式,本节中我们将进一步学习字符串打印输出的相关内容,并通过一系列的小例子感受使用 ...

  2. Python编程基础:第十七节 集合Set

    第十七节 集合Set 前言 实践 前言 我们本节一起来学习集合的相关内容,集合简而言之就是一种能够存放数据的数据结构,其中的数据没有索引,没有顺序,互不相同. 实践 我们来创建两个集合: utensi ...

  3. Python编程基础:第七节 字符串切片String Slicing

    第七节 字符串切片String Slicing 前言 实践 前言 我们有时候需要对一个字符串进行切片,取其一部分作为新的字符串进行处理.例如从姓名中分别提取姓和名,从网站域名中提取网站名称等等. 实践 ...

  4. Python编程基础:第二十一节 函数返回Return

    第二十一节 函数返回Return 前言 实践 前言 编程往往是用于实现某种计算并将计算结果进行返回,例如我们定义了一个函数用于计算两个数的和,那么最终的目的是将计算结果返回给用户.所以我们这里要进一步 ...

  5. Python编程基础:第二十节 函数Function

    第二十节 函数Function 前言 实践 前言 目前为止,我们已经学习了常见的数据类型以及逻辑结构.但是代码都只能运行一次,如果想多次运行该段代码就得重复写多次.为了避免书写冗余的代码,我们需要引入 ...

  6. Python编程基础:第六节 math包的基础使用Math Functions

    第六节 math包的基础使用 前言 实践 前言 我们通常会对数值型变量进行计算,这里我们给出一些常用的函数用于辅助你的计算过程.常用的数学计算函数均在math包. 实践 首先我们导入math包,并定义 ...

  7. Python编程基础:第十一节 for循环For Loops

    第十一节 for循环For Loops 前言 实践 前言 比起while循环,我们可能对for循环更加熟悉.在for循环中我们可以更方便地控制循环次数以及终止条件.本节中我们以倒计时为例介绍for循环 ...

  8. Python编程基础:第十节 while循环While Loops

    第十节 while循环While Loops 前言 实践 前言 如果你需要计算机反复执行某个代码段,你就需要用到while循环,while循环的结构如下: while 判断1:代码段1 当判断1为Tr ...

  9. Python编程基础:第四节 类型转换Type Cast

    第四节 类型转换Type Cast 前言 整型(int) 浮点型(float) 字符串型(str) 前言 在数据处理过程中,我们有时需要将数据类型进行强制转换.例如做整数加法时,我们需要将所有变量类型 ...

  10. python编程基础之二十七

    列表生成式:[exp for iter_var in iterable] 同样也会有字典生成式,集合生成式,没有元组生成式,元组生成式的语法被占用了 字典生成式,集合生成式,就是外面那个括号换成{}  ...

最新文章

  1. 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java
  2. 选择器Selector
  3. 第十二节:Lambda、linq、SQL的相爱相杀(1)
  4. 结合 Mist 在本地测试网络上实现代币智能合约
  5. python虚拟环境安装包_Python虚拟环境的创建和包下载过程分析
  6. 动态规划之数字三角形问题
  7. C#小方法PadLeft 和 PadRight
  8. 51单片机——LCD12864
  9. Manjaro 安装xmind 8
  10. DataStore的基础用法
  11. 数据库(表结构)设计技巧及注意事项
  12. JavaScript实现汉字转拼音功能
  13. 物联网与互联网有什么区别
  14. 98岁国学大师自曝只喜欢18岁的年轻美女
  15. 医学院交换去计算机学院,第一临床学院成功举办2018年国际医学生SCOPE交换项目...
  16. 算法笔记_203:第四届蓝桥杯软件类决赛真题(C语言B组)
  17. 高师培训计算机心得体会,培训学习心得体会范文
  18. 如何转换swf格式的文件?
  19. 英语自我介绍——应聘初中英语老师
  20. 利用python语言进行相机标定

热门文章

  1. happy card 完全背包dp
  2. c++编译器pointer to a function used in arithmetic的解决办法
  3. php获得前一天,php 获取前一天、后一天等日期的方法
  4. 如何把两个域控同步_同步带噪音大,怎么办?
  5. matlab中if语句的用法_if语句的基本用法
  6. java jsoup解析html标签_jsoup解析html
  7. 调用ajax_[WEB篇]-AJAX-02-AJAX应用案例
  8. mysql+php+服务器配置_php服务器配置(php+mysql+iis)步骤
  9. java bip-39_bip39
  10. (FCN)-Fully Convolutional Networks for Semantic Segmentation