python中有三个函数式编程极大的简化了程序的复杂性,这里就做一下讨论和记录。

一 Map:应用在链表输入所有元素的函数,它的格式如下所示:

  map(function_to_apply, list_of_inputs)

  大多数情况下,我们会把一个链表中的元素一个个输入到函数中来获取结果,代码如下所示:

items = [1, 2, 3, 4, 5]
squared = []
for i in items:
squared.append(i**2)

  map就可以把这个函数简化,如下所示:

  

items = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, items))

  大多数情况下,我们把 lambda结合map一起使用,替代传统的输入,如下所示:

def multiply(x):
return (x*x)
def add(x):
return (x+x) funcs = [multiply, add]
for i in range(5):
value = list(map(lambda x: x(i), funcs))
print(value) # Output:
# [0, 0]
# [1, 2]
# [4, 4]
# [9, 6]
# [16, 8]

二  Filter:创建一个让函数返回为True的链表元素,下面是一个简洁的例子:

  

number_list = range(-5,5)
less_than_zero = list(filter(lambda x: x < 0, number_list))
print(less_than_zero) number_list = range(-5,5)
less_than_zero = list(filter(lambda x: x != 0, number_list))
print(less_than_zero)

三 reduce:在链表元素的循环计算方面有着广泛的用途,

  正常情况下,计算的是这样写的:

product = 1
list = [1, 2, 3, 4]
for num in list:
product = product * num # product = 24

  在使用reduce的情况下,是这样计算的:

from functools import reduce
product = reduce((lambda x, y: x * y), [1, 2, 3, 4]) # Output: 24

  一下子简洁了很多。

参考文档:

1 http://book.pythontips.com/en/latest/map_filter.html

  

python库函数Map, Filter and Reduce的用法的更多相关文章

  1. [译]PYTHON FUNCTIONS - MAP, FILTER, AND REDUCE

    map, filter, and reduce Python提供了几个函数,使得能够进行函数式编程.这些函数都拥有方便的特性,他们可以能够很方便的用python编写. 函数式编程都是关于表达式的.我们 ...

  2. Python之内建函数Map,Filter和Reduce

    Python进阶 map,filter, reduce是python常用的built-in function. 且常与lambda表达式一起用. 其中: map 形式:map(function_to_ ...

  3. Python Map, Filter and Reduce

    所属网站分类: python基础 > 函数 作者:慧雅 原文链接: http://www.pythonheidong.com/blog/article/21/ 来源:python黑洞网 www. ...

  4. Map,Filter和Reduce

    转自:https://www.aliyun.com/jiaocheng/444967.html?spm=5176.100033.1.13.xms8KG 摘要:Map,Filter和Reduce三个函数 ...

  5. Map, filter and reduce

    To add up all the numbers in a list, you can use a loop like this: Total is initialized to 0. Each t ...

  6. python的map函数和reduce函数(转)

    map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例 ...

  7. js Array 中的 map, filter 和 reduce

    原文中部分源码来源于:JS Array.reduce 实现 Array.map 和 Array.filter Array 中的高阶函数 ---- map, filter, reduce map() - ...

  8. python的高阶函数(map,filter,sorted,reduce)

    高阶函数 关注公众号"轻松学编程"了解更多. 1.MapReduce MapReduce主要应用于分布式中. 大数据实际上是在15年下半年开始火起来的. 分布式思想:将一个连续的字 ...

  9. [Python学习笔记-002] lambda, map, filter and reduce

    1. lambda lambda, 即匿名函数,可以理解为跟C语言的宏类似.例如: >>> max = lambda x, y: x if x > y else y >& ...

随机推荐

  1. css选择器querySelectorAll

    * querySelectorAll(css的选择器)* 通过css的选择器获取到的一组元素* 获取的也是类数组** 主语* document 从整个页面去获取一组元素* 父级 从父级下去获取一组元素 ...

  2. xadmin设置

    1.xadmin配置 INSTALLED_APPS = ( ... 'xadmin' , 'crispy_forms' , 'reversion' , ... ) 2.注册类 import xadmi ...

  3. C#使用 params object[] 将参数个数不一样的方法 集成一个

    getChange("1"); getChange("1","2"); public string getChange(params obj ...

  4. C#删除文件夹以及删除文件

    public static void DelectDir(string srcPath) { try { DirectoryInfo dir = new DirectoryInfo(srcPath); ...

  5. Springboot学习07-数据源Druid

    Springboot学习07-数据源Druid 关键字 Druid 前言 学习笔记 正文 1-Druid是什么 Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析器 ...

  6. python note 03 切片及对字符串操作

    1.计算 1 - 2 + 3 ... + 99 中除了88以外的数之和 i = 1 sum = 0 while i < 100 : if i == 88 : i = i + 1 continue ...

  7. dump、load和dumps、loads的区别

    dump: 将dict(字典)转换为str(字符串),并写入json文件中. load: 用于从json文件中读取数据 运行结果: dumps: 将dict(字典)转换为str(字符串). 运行结果: ...

  8. 浏览器DOM事件触发

    除用户人为交互触发事件外,用js脚本触发事件的一般流程为 创建事件 var e = Event('event_name', {key: value, ...}) 分发事件到 event.target ...

  9. python的基本用法(一)

    1.什么变量,什么是数据类型? 变量就是用来存放东西的, 数据类型:字符串str,整数int,浮点数(小数)float type()函数用来检验数据格式的类型 2.什么是for循环,什么是while循 ...

  10. 关于java中的一些循环

    1:switch语句 (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; bre ...