python六十一课——高阶函数之reduce
2).reduce(fn,lsd): 参数一:fn --> 函数对象 参数二:lsd --> 序列对象 功能: 先将lsd中的第一和第二个元素去除传入到fn中参与运算, 运算后得到结果,再和第三个元素传入到fn中参与运算, 以此类推... 【注意】: reduce函数属于functools模块中的函数,所以需要显示的先导入functools模块再使用 `from functools import reduce`
from functools import reduce
lt=[1,2,3,4]
'''
lt = [1,2,3,4]
自定义封装函数 --> add 作用:对列表中的元素求和 def add(x,y)
使用reduce函数执行效果如下:
第一次:add(1,2)
第二次:add(add(1,2),3)
第三次:add(add(add(1,2),3),4)
'''
#需求:计算列表中元素的和值
lt=[1,2,3,4]
#代码实现一:;递归解决求和的问题(简单递归)
def mySum(num):
if num==1:
return 1
return num+mySum(num-1)
print(mySum(4)) #代码实现二:新技术(reduce)
def add(x,y):
return x+y
res=reduce(add,lt)
print(res,type(res))
print(reduce(lambda x,y:x+y,lt))
print(sum(lt)) #需求:lt=[1,2,3,4]得到其中元素的乘积
print(reduce(lambda x,y:x*y,lt)) '''
需求:
从键盘读入一个整数字符串,例如:'12345'
需要将其转换为12345,注意:不能直接使用int()来实现
思路:使用map和reduce配合来实现
步骤一:'12345' --> 拆分为散装数据:1 2 3 4 5 可以用map来实现
步骤二:将map对象中的数据1 2 3 4 5组合成为 --> 12345 可以用reduce来实现
'''
str1=''
def chr2Int(str):
return int(str) def func(x,y):
return x*10+y
mo=map(chr2Int,str1)
num=reduce(func,mo)
print(num,type(num)) #终极版
print(reduce(lambda x,y:x*10 + y,map(int,str1)))
返回目录
python六十一课——高阶函数之reduce的更多相关文章
- python六十课——高阶函数之map
1.高阶函数: 特点:函数的形参位置必须接受一个函数对象 分类学习: 1).map(fn,lsd1,[lsd2...]): 参数一:fn --> 函数对象 参数二:lsd1 --> 序列对 ...
- python六十三课——高阶函数之sorted
演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...
- Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
高阶函数Higher-orderfunction 变量可以指向函数 >>> abs #abs(-10)是函数调用,而abs是函数本身 <built-in function ab ...
- Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted
1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...
- Python 编程基础之高阶函数篇(一)
高阶函数:能接受函数作为参数的函数. 如: f=abs def add(x,y,f): return f(x)+f(y) 如果我们用:add(-5,9,f)来调用该高阶函数,则返回结果为:14 ...
- Python高阶函数_map/reduce/filter函数
本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过 ...
- 【python】python函数式编程、高阶函数
1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并 返回. def f(x): r ...
- python 函数式编程:高阶函数,map/reduce
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
- python入门16 递归函数 高阶函数
递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ ...
随机推荐
- 绕过边界防火墙之ICMP隧道、HTTP隧道、UDP隧道
一.ICMP隧道 背景:已经通过某种手段拿到了园区网A主机的控制权,但是边界防火墙只放行该主机向外的ICMP流量,此时怎样才能让A主机和公网主机C建立TCP连接呢? 方案:将TCP包内容包裹在ICMP ...
- asp.net mvc 模型验证组件——FluentValidation
asp.net mvc 模型验证组件——FluentValidation 示例 using FluentValidation; public class CustomerValidator: Abst ...
- Java基础——Oracle(二)
一.Oracle 中的几个服务 1.OracleDBConsoleorcl 进程:nmesrvc.exe oem控制台服务进程,dba用.Oracle Enterprise Manager(Oracl ...
- 《深入理解Java虚拟机:JVM高级特性与最佳实践》读书笔记
第一部分 走进Java 一.走进Java 1.概述 java广泛应用于嵌入式系统.移动终端.企业服务器.大型机等各种场合,摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想 2.java技术体系 ...
- That Nice Euler Circuit(LA3263+几何)
That Nice Euler Circuit Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu D ...
- code for qint function
function [p,y,a] = qint(ym1,y0,yp1) %QINT - quadratic interpolation of three adjacent samples % % [p ...
- JAVA的高并发基础认知 二
一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...
- canvas-color的几种设置
#ffff #642 = #664422 rgb(255,128,0) rgba(100,100,100,0.8) hsl(20,62%,28%) hsla(40,82%,33%,0.6) red
- npm 走 privoxy 代理经常出现 shasum check failed 的解决办法
今天在下载一个比较大的项目,经常 shasum check failed ,太烦了,于是想切淘宝源,分别尝试 nrm 切换和传递 --registry ,结果都出现 Unexpected end of ...
- “由于无法验证发行者,所以WINDOWS已经阻止此软件”的解决方法
Vista 和 Windows7 系统都很注重系统的安全性,在提高安全性的同时,也给我们某些应用带来不便,例如需要安装插件或证书,可能会弹出“由于无法验证发行者,所以WINDOWS已经阻止此软件”的相 ...