filter、map、reduce的作用

--map函数的用法

语法map(function,iterable1,iterable2)

说明:function中参数值可以是一个,也可以是多个;iterable代表function运算中的参数值,有几个参数值就传入几个iterable

注意:1.迭代器需要进行列表转换 2.map中如果传入的序列长度不一,会依据最短的序列计算

def func(a,b):
    return a + b
li = map(func,[1,2,3],[4,5,6])
print(list(li))

问题:如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?

print(list(map(lambda x:x*x,[i for i in range(1,11)])))

 

 

 

 

 

 

 

--filter的用法

作用:filter主要作用是过滤掉序列中不符合函数条件的元素

语法:fliter(function,sequence)

说明:function可以是匿名函数或者自定义函数,可以对后面的sequence序列的每个元素判定是否符合条件;sequence可以是列表、元组或者字符串

num = [1,2,5,6,9,10]
def func(a):
    if a % 2 == 0:
        return a
print(list(filter(func,num)))

 

 

 其中func也可以使用匿名函数

num = [1,2,5,6,9,10]
print(list(filter(lambda x:x % 2 == 0,num)))

 

 

 

--reduce的用法

作用:reduce是对一个序列进行计算,结果只得到一个值

语法:reduce(function,iterable)

说明:function中必须传入两个参数,iterable可以是列表或者元组

注意:reduce使用前需要导包 from functools import reduce

 

from functools import reduce
num = [1,3,5]
print(reduce(lambda x,y:x*y,num))

 

 

 同样,可以使用匿名函数或者普通函数

posted @ 2022-11-12 23:26  powfu  阅读(233)  评论(0)    收藏  举报