首页 > 编程语言 >python当中map,reduce和filter函数用法和区别

python当中map,reduce和filter函数用法和区别

时间:2022-10-19 09:12:01浏览次数:51  
标签:map 函数 python reduce li filter new

在python当中,关于map,reduce和filter函数用法。

  1. map:对任何可迭代序列中的每一个元素应用对应的函数。python3中返回的是迭代器。
  2. reduce:将序列中所有的元素进行合并运算。在python3中,reduce函数放在了functools这个模块中,需要导入使用。
  3. filter:对序列中的元素进行判断筛选。python3中返回的是迭代器。

一、map函数

  map(处理逻辑可以是函数也可以是lambda表达式,可迭代的序列).

  示例:

def func(x):
    return x + 1

li = [2,23,4,6,1]
new_li = map(func,li)
print(list(new_li))
View Code

  也可以使用匿名函数。

li = [2,23,4,6,1]
new_list = map(lambda x:x+1,li)
print(list(new_list))
View Code

 

二、reduce函数

  reduce函数规定了,一定要传递一个支持一个二元操作的函数。

  示例:

li = [2,23,4,6,1]
def run(x,y):
    return x+y

print(reduce(run,li))
# 36
View Code

  也可以使用匿名函数。

  示例:

li = [2,23,4,6,1]
new_li = reduce(lambda x,y:x+y,li)
print(new_li)
# 36
View Code

 

三、filter函数

  fileter函数在拿到一个序列的时候,会开始循环迭代这个序列中的每一个元素,对每一个元素都进行一次if判断,结果为True的加入到列表中,为False的,直接丢掉。

  示例:

#过滤出小于5的元素
li = [2,23,4,6,1]
def greater_than(x):
    if x <5:
        return True
    else:
        return False

g = filter(greater_than,li)
print(list(g))
View Code

  示例:

li = [2,23,4,6,1]
new_li = filter(lambda x:x<5,li)
print(list(new_li))
View Code

  最后总结以下:

    map函数用于处理序列中每一个元素;

    filter函数用于过滤序列中每一个元素;

    reduce函数用于做序列的合并操作。

 

标签:map,函数,python,reduce,li,filter,new
From: https://www.cnblogs.com/shaoyishi/p/16804979.html

相关文章

  • python封装
    这种变形的特点:1,在类外部无法直接obj.__AttrName2,在类内部可以直接使用:obj.__AttrName3,子类无法覆盖父类__开头的属性0,classA:'类的封装啊'__x=1......
  • python类中的数据问题
    问题:1.)上面的__init__函数中,加*句我不写,为啥不可以?不理解里面怎么传递。。。初始化的时候不是先在内部调用了__init__,生成了L了吗?下面函数不能用这里的L,甚至是a,b这些变......
  • docker jdk 容器内无法使用 jstack/jmap/jstat 等命令
    问题:想看看容器内java线程锁的状态,运行jstack1提示“UnabletogetpidofLinuxThreadsmanagerthread”,使用其他jdk命令也是如此排查:原因是因为容器内的jav......
  • Selenium+Python系列 - 开发环境搭建
    一、写在前面我从未想过自己会写python系列的自动化文章,有些同学会问,那你现在为什么又开始写了?不止一个人找过我,问我可以写一些Python自动化的文章吗,答案是肯定的。笔......
  • Python 操作Excel-openpyxl模块使用
    openpyxl的用法实例1.1Openpyxl库的安装使用openpyxl模块是一个读写Excel2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一......
  • 学习python-Day76
    今日学习内容一、虚拟机关键配置名词解释1.虚拟网络编辑器说明桥接模式​ 配置的地址信息和物理主机地址信息相同,容易造成地址冲突NAT模式​ 配置的地址信息和物......
  • Python OpenCV4趣味应用系列(一)---伪彩色效果
    工欲善其事,必先利其器!起航之前先把环境搭建好:第一步:安装Python,官网下载,选个python3.x(自己喜欢的版本),同时将Python相关目录添加到环境变量;第二步:安装python-opencv,cmd命令......
  • Python OpenCV4趣味应用系列(三)---内切圆/外接圆
    为了方便讲解,我们先来创建一个多边形做演示第一步:创建图像,并绘制一个六边形。代码和生成图像如下:#Createanimager=100src=np.zeros((4*r,4*r),dtype=np.uint8)#C......
  • Python OpenCV4趣味应用系列(四)---颜色物体实时检测
    今天,我们来实现一个视频实时检测颜色物体的小实例,视频中主要有三个颜色物体,我们只检测红色和绿色的球状物体,如下图所示:第一步需要打开视频(或者摄像头):cap=cv2.VideoCaptur......
  • Vuex状态管理-mapState的基本用法详细介绍
    Vuex状态管理-mapState的基本用法详细介绍:https://blog.csdn.net/chenjie9230/article/details/108883055?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.......