python中的map,feilter,和reduce函数


map()

map()的原型是map(function, iterable, …)

  • 参数 function: 传的是一个函数名,可以是python内置的,也可以是自定义的。 就像上面的匿名函数lambda

  • 参数 iterable: 传的是一个可以迭代的对象,例如列表,元组,字符串这样的。

  • 返回值是一个map对象,其实质就是一个迭代器

这个函数的意思就是将function应用于iterable的每一个元素,结果以列表的形式返回(其实是迭代器)。注意到没有,iterable后面还有省略号,意思就是可以传很多个iterable,如果有额外的iterable参数,并行的从这些参数中取元素,并调用function。如果一个iterable参数比另外的iterable参数要短,将长iterable剩下的元素扔掉。

例子:将列表中的int型元素转换成字符串型


a=[1,2,3,4,5]la=map(str,a)print(la)
print(list(la)) #使用list方法将迭代器转化成列表输出:<map object at 0x000002C09F758278>
['1', '2', '3', '4', '5']

例子:将两个等长列表合并

"""
如果两个列表不等长,map会以最短的列表为准,将长列表剩下的元素扔掉,如果想以长列表为准的话
"""
a = [1, 2, 3, 4, 5]
b = [1, 2, 3, 4, 5]res = map(lambda x, y: x + y, a, b)print(list(res))输出:[2, 4, 6, 8, 10]

如果两个列表不等长,map会以最短的列表为准,将长列表剩下的元素扔掉,
如果不想丢弃长列表剩下的元素,想以长列表为准的话,请点击以下链接

https://blog.csdn.net/weixin_43250623/article/details/93409418


reduce()

reduce函数接收两个参数,一个是函数,一个是Iterable

把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

from functools import reduce
# 从某个版本开始reduce不再作为内置函数存在,而是放在了functools模块中def f1(x, y):return x + ya = [1, 2, 3, 4, 5]res = reduce(f1, a)
print(res)输出:
#  15

如果要把序列[1, 3, 5, 7, 9]变换成整数13579reduce就可以派上用场:

def fn(x, y):return x * 10 + yres = reduce(fn, [1, 3, 5, 7, 9])
print(res)输出:
#  13579

filter()

filter函数用于过滤序列

filter()函数包含2个参数,一个是过滤函数,另一个是过滤序列

返回值是一个可迭代对象

filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

下面用一个例子:

删除1-100中素数

L = range(1, 101)def isprimer(n):flag = 1for i in range(2, n):if n % i == 0:flag = 0if flag == 0:return nres = filter(isprimer, L)print(res)  # 输出来是一个filter对象,其实质是一个迭代器
print(list(res))

输出:

<filter object at 0x0000020B7AC583C8>[4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 60, 62, 63, 64, 65, 66, 68, 69, 70, 72, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100]

更详细讲解移步https://www.liaoxuefeng.com/wiki/1016959663602400

python中的map,feilter,和reduce函数相关推荐

  1. Python中的map()函数和reduce()函数的用法

    Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下  

  2. python用map提取一个数的个十百位数_如何使用python中的map函数?

    我们在使用python过程中,为了避免错误删除,会选择做好一个序列后可以插入另外的序列中做为新序列的一部分内容.方便完成一些复杂的工程或多个片段分别编辑后再串成一个完整工程的操作.之前小编向大家介绍了 ...

  3. 【Python】Python 中的 map 函数处理可迭代对象

    Python 中的 map() 是一个内置函数,可以在不使用显式 for 循环的情况下处理和转换一个迭代器中的所有项目,这种技术通常被称为映射.当需要对一个迭代器中的每个项目应用一个转换函数并将它们转 ...

  4. python中的map什么意思啊_python中的map怎么使用(方法详解)

    python中的map怎么使用? python中map的使用方法: map函数的原型是map(function, iterable, -),它的返回结果是一个列表. 参数function传的是一个函数 ...

  5. python中调用什么模块的什么函数来实现求实数平方根_python语言基础与应用答案...

    python语言基础与应用答案 python3不再区分整数和长整数,统一为()类型. python可以使用(____)函数打开文件,这个函数默认的打开模式为(____). a=[3]alist=[1, ...

  6. python中的map怎么用_python中的map怎么使用(方法详解)

    详细内容 python中的map怎么使用? python中map的使用方法: map函数的原型是map(function, iterable, -),它的返回结果是一个列表. 参数function传的 ...

  7. python关键字define_在Python中,使用关键字define定义函数。

    在Python中,使用关键字define定义函数. 以下属于生药学有效性评价的是A:有效成分定量分析B:限量检查C:重金属检测D:基原鉴定 若有如下定义和语句:A:7B:12C:8D:9 图示电路中的 ...

  8. 从Python中的另一个文件调用函数

    本文翻译自:Call a function from another file in Python Set_up: I have a .py file for each function I need ...

  9. python列表去重函数_对python中两种列表元素去重函数性能的比较方法

    测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import t ...

最新文章

  1. Clang:LLVM 的 C 语言家族前端
  2. TCP的三次握手和四次分手
  3. 谈谈几个 Spring Cloud 常见面试题及答案
  4. 孩子,来生我们一起走
  5. 《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一)
  6. 如何导入一个项目 myeclipse
  7. go系列(1)- linux下安装go环境
  8. 关于Go语言,你可能会讨厌的五件事
  9. html 提交按钮(input submit)
  10. Serverless 全能选手,再添一“金”
  11. 老司机 iOS 周报 #37 | 2018-09-24
  12. SQL Server 中的嵌套事务与@@TranCount(转)
  13. 誉赐 PC阳光板www.ycpc.icoc.cn/详尽概述
  14. 史上最全的互联网思维精髓总结
  15. 二、Linux 教程-基础命令(1~180未完)
  16. IDEA打包程序与运行(windows环境)
  17. 做教学直播时,如何做PPT课件直播?
  18. 瞻博网络Contrail多云解决方案荣获最佳创新解决方案奖
  19. Ctfshow菜狗杯------传说之下(雾)
  20. 华为Mate40/华为Mate40Pro忘记密码怎么解锁激活手机设备已锁定恢复出厂无法解锁账户ID屏幕锁解除刷机方法教程

热门文章

  1. linux crontab定时任务详解
  2. 070——VUE中vuex之使用getters计算每一件购物车中商品的总价
  3. JavaScript学习笔记 - 基础排序算法
  4. Nginx 的配置文件介绍
  5. window.open完美替代window.showModalDialog
  6. 浅谈Node.js(概念、安装、入门例子)
  7. Silverlight.XNA(C#)跨平台3D游戏研发手记:(一)差集运算在SLG战斗范围设定中的应用...
  8. CIO如何跟“IT盲”领导沟通
  9. Git使用中关于rebase 、stash 、reflog、reset的一些注意点
  10. 用 node.js 脚本替代复杂的 npm script