lambda是一个匿名函数,知道这个就行,没必要去看那么多,会用就行。
lambda(参数,函数返回);map(函数,列表)
一、lambda
如下,如果现在要定义一个函数,求三个参数的和,正常写法都是直接def定义开始,但是正常使用中,如果某个函数很简单并且只是使用一次,直接用lambda
def sum_elements(x,y,z):
return x+y+z
print(sum_elements(1,2,3))
#上面的函数等价于下面的lambda
s = lambda x,y,z:x+y+z
print(s(1,2,3))
二、map
map根据提供的函数对指定序列做映射。如果要对列表中所有元素依次进行函数处理,都是靠for循环实现,map就是定义来实现循环的,但是map实现出来的是一个生成器,所以还要用list转出来。
data = [1,2,3,4,5,6]
def fun1(x):
return x*2+4
for item in data:
print(fun1(item))
#上面的函数等价于下面的lambda
fun2 = lambda x:x*2+4
for item in data:
print(fun2(item))
#d等价于map和lambda
print(list(map(lambda x:x*2+4,data)))
三、lambda在filter中的应用
filter是筛选函数,filter(函数,列表)。
data = [1,2,3,4,5,6]
#取出data中的偶数
even = list(filter(lambda x:x%2==0,data))
print(even)