#匿名函数:简化函数定义
#格式:lambda 参数1,参数2 : 运算

1 def func():
2     print('aaa')
3 
4 def add(a,b):
5     s=a+b
6     return s
1 s=lambda a,b:a+b
2 print(s)
3 result=s(2,4)
4 print(result)

#匿名函数作为参数:

1 def func(x,y,func):
2     print(x,y)
3     print(func)
4     s=func(x,y)
5     print(s)
6 
7 func(1,2,lambda a,b:a+b)

#匿名函数与内置函数结合使用:
#max,sorted,zip……

1 list1=[2,3,5,6,7,8,9]
2 m=max(list1)
3 print('列表的最大值:',m)
4 list2=[{'a':10,'b':20},{'a':13,'b':4},{'a':67,'b':47},{'a':56,'b':35}]
5 m=max(list2,key=lambda x:x['a'])
6 print('列表的最大值:',m)

#map 函数

1 list1=[2,3,4,5,6,7,8,9]
2 result=map(lambda x:x+2,list1) #对列表中的所有元素进行+2
3 print(list(result))
4 
5 result=map(lambda x:x if x%2==0 else x+1,list1) #列表中所有奇数+1
6 print(list(result))

#reduce 函数
#对列表中元素进行加减乘除运算的函数
#需要导入:from functools import reduce

1 from functools import reduce
2 tuple1=(2,3,4,5,6)
3 result=reduce(lambda x,y:x+y,tuple1)
4 print(result)
1 from functools import reduce
2 tuple2=(1,)
3 result=reduce(lambda x,y:x-y,tuple2,9)
4 print(result)

#filter 函数:过滤器

1 list1=[1,2,3,4,5,67,78,35]
2 result=filter(lambda x:x>10,list1)
3 print(list(result))
1 students=[{'name':'lily','age':20},
2        {'name':'hacker','age':4},
3        {'name':'jarh','age':47},
4        {'name':'maw','age':35}
5        ]
6 students=sorted(students,key=lambda x:x['age'],reverse=True)  #倒叙 排序
7 print(students)

#匿名函数与内置函数结合使用,总结:

max()
min()
sorted()
map()
reduce()
filter()

作者:{admin-xiaoli}