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=‘12345‘
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)))

原文地址:https://www.cnblogs.com/hankleo/p/10513955.html

时间: 2024-07-30 22:07:27

python六十一课——高阶函数之reduce的相关文章

python六十课——高阶函数之map

1.高阶函数: 特点:函数的形参位置必须接受一个函数对象 分类学习: 1).map(fn,lsd1,[lsd2...]): 参数一:fn --> 函数对象 参数二:lsd1 --> 序列对象(字符串.列表.range...) 功能: 将fn函数作用于lsd1中的每一个元素上, 将每次执行的结果存入到一个map对象中返回: [注意]得到的这个map对象是一个迭代器对象 需求:lt = ['1','2','3','4','5'] --> [1,2,3,4,5] map(int,lt):执行过

python 函数式编程:高阶函数,map/reduce

1 #函数式编程 2 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 3 #(一)高阶函数 4 5 f=abs 6 f 7 print(f(-20)) 8 #结果 20 9 #函数可以赋值给一个变量,即:变量可以指向函数 10 #那么函数名是什么?函数名其实就是指向函数的变量! 11 12 #下面的代码,执行后,abs已经不指向求绝对值函数而是一个整数10了. 13 #后面的abs(-10)将报错,无法执行,必须重启python才可以. 14 #abs=10

Python高阶函数_map/reduce/filter函数

本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你就能大概明白map/reduce的概念. 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序

python入门16 递归函数 高阶函数

递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ 2018-11-17 dinghanhua 递归函数 高阶函数 """ '''递归函数,函数内部调用函数本身''' '''n!''' def f_mul(n): if type(n) != type(1) or n <= 0: #不是整数或小于0 raise Except

python内置常用高阶函数(列出了5个常用的)

原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://blog.csdn.net/cv_you/article/details/70880405 python内置常用高阶函数: 一.函数式编程 •函数本身可以赋值给变量,赋值后变量为函数: •允许将函数本身作为参数传入另一个函数: •允许返回一个函数. 1.map()函数 是 Python 内置的高阶函数,

python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 函数式编程:是使用一系列函数去解决问题,函数式编程就是根据编程的范式来的出想要的结果,只要是输入时确定的,输出就是确定的. 1.2高阶函数 能把函数作为参数传入,这样的函数就称为高阶函数. 1.2.1函数即变量 以python的内置函数print()为列,调用该函数一下代码 >>> pri

JavaScript高阶函数 map reduce filter sort

本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 高阶函数 一个函数就接收另一个函数作为参数,这种函数就称之为高阶函数 1.高阶函数之map: 此时我们有一个数组和一个接受一个参数并返回一个数的函数.我们需要把这个数组的每一个值在这个函数上走一遍,从而得到一个新数组.此时就需要map了 var a = [1,2,3,4,5,6]; var b = [] var fun = function(x) { return x * x; } b = a.map(fun) alert(b)  /

函数式编程 &amp; Python中的高阶函数map reduce filter 和sorted

1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数式编程的第一型.在面向对象编程中,我们把对象传来传去,那在函数式编程中,我们要做的是把函数传来传去,而这个,说成术语,我们把他叫做高阶函数.飞林沙 2)特点 计算视为视为函数而非指令 纯函数式编程:不需变量,无副作用,测试简单(每次的执行结果是一样的) 支持高阶函数,代码简洁 2. python支持

python函数式编程之高阶函数学习

基本概念 函数式编程,是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量.因此,任意一个函数,只要输入确定,输出就确定的这种函数我们称之为纯函数,我们称这种函数没有副作用.而允许使用白变量的程序设计语言,由于函数内部的变量状态是不确定的,同样的输入可能有不同的输出,我们称这种函数为有副作用的. 函数式编程的一个特点就是,允许把函数本身作为参数传递给另一个函数,还允许返回一个函数! Python对函数式编程提供部分支持.由于Python允许使用变量,因此,Python不是纯函数式