目录
1.遍历函数map(function,iterable)&过滤函数filter(function,iterable)
#filter函数的示例1(Python程序设计艾小伟2021版第39页)
目录
1.遍历函数map(function,iterable)&过滤函数filter(function,iterable)
#filter函数的示例1(Python程序设计艾小伟2021版第39页)
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()
不想写了,跳转一下吧