函数式编程工具:filter和reduce

# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#函数式编程工具:filter和reduce

#python内置函数中,map函数是用来进行函数式编程这类工具最简单的内置函数代数

#函数式编程含义:
#一种编程范式,也就是如何编写程序的方法论,是一种编程思想。
#无法给予准确的定义
#函数式编程的编程风格强调表达式计算,而不是执行命令。

#常见函数式编程
#filter:基于某一测试函数过滤出一些元素
#reduce:对每对元素都应用函数并运行到最后结果,两者都返回可迭代对象

#页码:523
#filter, 过滤
print list(filter((lambda x:x>0),range(-5,5)))#[1, 2, 3, 4]

#以上等价于:
res=[]
for x in range(-5,5):
    if x>0:
        res.append(x)
#为什么在print res时没有缩进呢?因为res他的定义是顶格的,如果print不是顶格,那么两者之间必然存在输出结果的差异

print res#[1, 2, 3, 4]

#reduce函数
#一对元素两两运行得到其结果
print reduce((lambda x,y:x+y),[1,2,3,4])#10
print reduce((lambda x,y:x*y),[1,2,3,4])#24

#编写函数通用设计原则:
1)函数尽可能小,尽可能自包含、有单一、统一的用途
2)出入参数和返回值等其他部分相互通信--通信的功能
时间: 2024-11-05 15:00:14

函数式编程工具:filter和reduce的相关文章

Python学习:映射函数(map)和函数式编程工具(filter和reduce)

在序列中映射函数map map函数会对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表. 例1: def sum(x):     return x + 10 L1 = [1,2,3,4,5,6,7] L = map(sum, L1) #结果为[11, 12, 13, 14, 15, 16, 17] map还有更高级的使用方法,例如提供了序列作为参数,它能够并行返回分别以每个序列中的元素作为函数对应参数得到的结果的列表.如例2所示. 例2: def sum(

python 函数式编程工具

有三个内置函数与列表一起使用时非常有用:filter().map()和reduce(). 1. filter(function, sequence)返回的序列由function(item)结果为真的元素组成. 如果sequence是一个字符串或元组, 结果将是相同的类型: 否则, 结果将始终是一个列表. 例如,若要计算一个不能被2和3整除的序列: def f(x): return x % 2 != 0 and x % 3 != 0 ... >>> filter(f, range(2, 2

python函数与函数式编程

https://www.cnblogs.com/evablogs/p/6699515.html 在理解函数式编程之前,我还是对函数的调用,参数传递以及函数的嵌套调用一头雾水,还是花了点时间整理了写思绪,以便我后面对装饰器复杂的参数传递和函数的调用的理解. 函数的定义 def 函数名(): 代码块 例如: 1 2 3 def func_name():      block      return value                                     #return语句

Matlab 函数式编程

作为一个Mathematica的熟练使用者,在切换到Matlab时总会经常产生编程习惯上的“水土不服”.利用Mathematica强大而丰富的内置函数,我们可以以简洁的代码实现复杂的功能.相比之下,Matlab的灵活性就欠缺很多. 为此,本文旨在讨论如何利用Matlab的匿名函数实现类似Mathematica的函数式编程.这里主要使用的是Tucker McClure所编写的函数式编程工具. Map 下面的代码使用匿名函数同时获取向量中的最大值和最小值: min_and_max = @(x) [m

王亟亟的Python学习之路(八)-函数式编程,map(),reduce(),filter()

转载请注明出处:王亟亟的大牛之路 首先在这里祝愿大家,新年快乐,工作顺利,BUG少少!!! 本来说是在春节假期内继续维持着写文章的进度,但是还是偷懒了几天(打了4天SC2哈哈哈) 今天上的是关于Python的文章,毕竟在亲戚家拜年,懒得插各类手机调试什么的,况且确实好久没有弄Python了,就写了,废话不多,开始正题!! 函数式编程 函数是什么? 把复杂的操作化为简单的函数分解成简单的操作,这种操作就是面向过程,也就是C这类的实现的大体概念. 函数式是什么? 函数没有变量,任意一个函数,只要输入

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码

paip.提升效率---filter map reduce 的java 函数式编程实现

#paip.提升效率---filter map reduce 的java 函数式编程实现 ======================================================== #----------------------index索引------------------++函数式编程的优点儿以及缺点++actual code 实际代码例如以下---filter 实现...--- map 实现..---reduce---调用 ##函数式编程的优点儿以及缺点------

Python函数式编程 map reduce filter

函数式编程,使代码简洁高效. Map函数: map(func, *iterables),作用是将一个列表映射到另一个列表. class map(object): """ map(func, *iterables) --> map object Make an iterator that computes the function using arguments from each of the iterables. Stops when the shortest ite

Python函数式编程——filter()、map()、reduce()

提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理大规模海量数据,并在之后广泛的应用于Google的各项应用中,2006年Apache的Hadoop项目[2]正式将MapReduce纳入到项目中. 好吧,闲话少说,今天要介绍的是Python函数式编程中的另外两个内建函数map()和reduce(),而不是Google的MapReduce. 1.filter() 格式:filter( func, seq ) 该内建函数的作