关于Python中filter&map,reduce和zip函数的运用

目录

1.遍历函数map(function,iterable)&过滤函数filter(function,iterable)

概念辨析

#map函数的示例1

#map函数的示例2

#filter函数的示例1(Python程序设计艾小伟2021版第39页)

 2.累计函数reduce()

定义:

例子:

3.压缩函数zip()


目录

1.遍历函数map(function,iterable)&过滤函数filter(function,iterable)

概念辨析

#map函数的示例1

#map函数的示例2

#filter函数的示例1(Python程序设计艾小伟2021版第39页)

 2.reduce函数


1.遍历函数map(function,iterable)&过滤函数filter(function,iterable)

概念辨析

遍历函数map(function,iterable)和过滤函数filter(function,iterable)都是传入的function函数依次作用为迭代对象iterable(序列或迭代器对象)每个元素上,但不同的是:

遍历函数map(function,iterable)的传入参数可为多个参数,而过滤函数filter(function,iterable)传入参数只能是单个参数

遍历函数map(function,iterable)的输出结果为经function函数处理过的迭代器对象,而过滤函数filter(function,iterable)的返回的是True的元素组成的filter迭代器对象(根据fuction对传入参数的处理得到返回值True或者False)。#返回的都是迭代器对象,不能直接读取,要用list()或tuple()查看返回对象内容

很抽象的话,看例子吧。

#map函数的示例1

def add(x,y):
    return x+y
d=map(add,[1,1,1],range(3))            #iterable为([1,1,1],range(3)),多参
for i in d:
    print(i)

输出为可迭代元素

#map函数的示例2

输出为迭代器,不可以直接读取

#filter函数的示例1(Python程序设计艾小伟2021版第39页)

seq=[1,2,3,4,5,6]
def check(i):
    return True if i%2==0 else False
print(list(filter(check,seq)))
print(list(filter(lambda x:x%2==0,seq)))         #这句没看懂,只在map函数的运用中看过lambda


输出:

 2.累计函数reduce()

reduce函数是标准库functools中的一个函数

定义:

“将一个可接收两个参数的函数,以迭代累积的方式从左到右依次作用到一个序列或迭代器的所有元素上”

例子:

#或者使用import functools,后边就变成fuctools.reduce()

#lambda的用法,知乎上这篇写的ok

链接:细说Python的lambda函数用法,建议收藏 - 小包总的文章 - 知乎 https://zhuanlan.zhihu.com/p/80960485

 #即将lambda x,y:x+y 应用到序列[5,6,7]中的每一个元素

3.压缩函数zip()

不想写了,跳转一下吧

http://t.csdn.cn/AhYDW

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值