一. lambda关键字的引入:
我们先从普通函数的定义说起:
def normalHS(x):
return 2*x+1
可以看出,若采用普通函数的定义,每次要实现一个新的功能函数,必须要给出函数独一无二的命名,不能和其他函数重名。但是若一个函数的功能使用次数并不多,采用专门命名得方法倒有点过于繁杂,由此,我们引出今天学习的主题:lambda关键字
python使用lambda 关键字创建【匿名函数】
以上功能函数的功能,则可以变成如下书写方式:
(lambda 冒号前面是参数,后面是返回值)
#定义与调用:
#1. 只有一个参数时:
g=lambda x:2*x+1 #x是参数,2*x+1是返回的值
print(g(5))
#2. 有多个参数时,可以用元组,列表等方式打包输入:
#定义和调用:
g=lambda x, y:x+y
print(g(5,2))
二. 结合lambda后两个牛掰的bif:
(1). 过滤器 filter(function or none,iterable)
a. 如果第一个参数是函数,则把iterable(可迭代参数) 代入函数计算,把返回为true的组建成filter object,然后可以通过list[]组建成列表返回;
show=list(filter(lambda x:x%2, range(0,10,1)))
print(show)
b. 如果第一个参数是none,则把iterable(可迭代参数) 为true的,可以通过list[]组建成列表返回。
g=list(filter(None,(1,0,False,True)))
print(g)
(2). 映射 map(function,iterable)
第一个参数必须是函数,则把iterable代入函数计算,直到可迭代元素的每个元素都加工完毕,组建为新序列。
print(list(map(lambda x:x*2,range(10))))