本文字数:763 字 ||

阅读时间:3

分钟"

Map 

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))

⼤多数时候,我们使⽤匿名函数(lambdas)来配合 map

不仅 ⽤于⼀列表的输⼊, 我们甚⾄可以⽤于⼀列表的函数

def multiply(x):    return (x*x)def add(x):    return (x+x)funcs = [multiply, add]for i in range(5):    value = map(lambda x: x(i), funcs)print(list(value))# 上⾯print时,加了list转换,是为了python2/3的兼容性# 在python2中map直接返回列表,但在python3中返回迭代器# 因此为了兼容python3, 需要list转换⼀下# Output:# [0, 0]# [1, 2]# [4, 4]# [9, 6]# [16, 8]

Filter

顾名思义,filter过滤列表中的元素,并且返回⼀个由所有符合要求的元素所

构成的列表,符合要求即函数映射到该元素时返回值为True.

这⾥是⼀个简短的例⼦:

number_list = range(-5, 5)less_than_zero = filter(lambda x: x < 0, number_list)print(list(less_than_zero))# 上⾯print时,加了list转换,是为了python2/3的兼容性# 在python2中filter直接返回列表,但在python3中返回迭代器# 因此为了兼容python3, 需要list转换⼀下# Output: [-5, -4, -3, -2, -1]

这个 filter 类似于⼀个 for 循环,但它是⼀个内置函数,并且更快。

注意:如果 map 和 filter 对你来说看起来并不优雅的话,那么你可以试试列 表/字典/元组推导式。⼤部分情况下推导式的可读性更好

Reduce 

当需要对⼀个列表进⾏⼀些计算并返回结果时,Reduce 是⾮常有⽤的函数。

举个例 ⼦,当你需要计算⼀个整数列表的乘积时。

通常在 Python 中你可能会使⽤基本的 for 循环来完成这个任务。

现在我们来试试 reduce:

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

推荐阅读

疫情查询服务上线

Python [**kwargs 的⽤法]

Python ⽣成器(Generators)

python list转map_Python 进阶之术 Map Filter Reduce相关推荐

  1. python map filter reduce

    本文记录python中,map,filter,reduce函数的用法. 参考链接: http://www.python-course.eu/lambda.php map map(func, seq) ...

  2. js数组中forEach/some/every/map/filter/reduce的区别

    2019独角兽企业重金招聘Python工程师标准>>> // js数组中forEach/some/every/map/filter/reduce的区别// 1. foreach:就是 ...

  3. 基本函数input() print() map() filter() reduce()和lambda()算子-operater用法

    #输入逗号分割的两个数字--input输入的内容,默认为字符类型 x,y =input("input:").split(",") print(x,y)#输入的多 ...

  4. Python 进阶之路 (五) map, filter, reduce, zip 一网打尽

    简洁的内置函数 大家好,我又回来了,今天我想和大家分享的是Python非常重要的几个内置函数:map,filter,reduce, zip. 它们都是处理序列的便捷函数.这很大程度上归功于函数式编程的 ...

  5. python高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...

    python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda.map和reduce高阶函数的 ...

  6. Python高级函数Counter、defaultdict、map、reduce、filter使用

    在这里为大家介绍一下Python非常实用的Counter.defaultdict.map.reduce.filter的函数使用,提高大家在平时使用Python的效率 计数器函数 Counter 带默认 ...

  7. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  8. python十九:map,filter,reduce函数

    # 处理序列中的每个元素,得到的结果是一个'列表',该'列表'元素个数及位置与原来一样 def map_practice(func, lt_num):lt_new = []for i in lt_nu ...

  9. 尾递归调用 高阶函数 map filter reduce

    #!/user/bin/env python# -*- coding:utf-8 -*-# 1.函数递归调用,函数返回值如果是另一个函数,而不是一个确切值,返回的则是这个函数的地址,需要我们加上()后 ...

最新文章

  1. viterbi维特比算法和隐马尔可夫模型(HMM)
  2. 33.搜索旋转排序数组
  3. QT:常用函数详解--常用操作记录(个人笔记)
  4. MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-1]
  5. 网络切片,切开5G万亿级市场“大面包”
  6. 谁说程序员的老婆和代码不可兼得?!
  7. brasb 密码自动应答
  8. idp 苹果开发账号续费
  9. python nlpir_Python 中文分词 NLPIR 快速搭建
  10. OSChina 周四乱弹 —— 你从小继承了程序员基因
  11. 【Java】使用JavaMail发送qq邮件
  12. 圆形谷仓Circular Barn_Silver---(DP优化 / )队列 + 贪心(复杂度O(2n))---DD(XYX)​​​​​​​的博客
  13. 两个生物特征识别会议的最新情况
  14. Java之Eclipse实现——在海绵宝宝的比基尼海滩里投喂鱼食
  15. 从零开始的ESP8266探索(11)-定时任务调度器Ticker使用演示
  16. Android智能平板应用,界面适配的另一种轻量级方法
  17. g729编码 c语言,非常流行的C语言实现的G.729压缩算法
  18. 如何提高自己的写作水平
  19. 揭秘美国DHS下的国家网络安全和通信整合中心(NCCIC)
  20. ROS入门之使用命令行工具控制小海龟移动

热门文章

  1. status_code想要得到302却得到200_中考200天倒计时!教你高效规划!抓紧抢报预留座位!...
  2. 从交换机浅谈安防视频会卡顿现象
  3. SDH光端机市场应用及发展趋势介绍
  4. 【渝粤教育】国家开放大学2019年春季 0408-22T管理学基础 参考试题
  5. 【渝粤教育】国家开放大学2018年秋季 0691-21T物理化学及实验 参考试题
  6. 【渝粤教育】广东开放大学 劳动关系理论与实务 形成性考核 (1)
  7. 【渝粤教育】电大中专职业应用写作_1作业 题库
  8. 有线电视的现状与发展,全国一网与广电5G一体化建设
  9. 让你的对象跑出内存,写入到磁盘或者进行网络传输,一文掌握Java对象序列化
  10. linux指定内核位置,ARM linux内核启动时几个关键地址