匿名函数的关键字为lambda,冒号前面是形参 冒号后面是返回值。
示例一:
from functools import reduce
print(reduce(lambda x,y:x+y,[1,2,3,4,5])) #求1到5的数字和
print(list(map(lambda x:x ** 2,range(5)))) #求0到5各数的平方
运行结果:
15
[0, 1, 4, 9, 16]
print(reduce(lambda x,y:x*y,range(1,11)))
运行结果:3628800
匿名函数的默认参数
fun =lambda x,y=2:x**y
print(fun(3))
print(fun(2,3))
运行结果:
9
8
匿名函数的可变参数:
f = lambda *args:sum(args)
print(f(1,2,3,4))
运行结果:10
匿名函数的关键字参数
f1=lambda **kwargs:kwargs.values()
print(f1(name='fensi',age=10))
运行结果:dict_values(['fensi', 10])
练习:通过匿名函数将列表中0排到列表后面,其余数字顺序不变。
nums=[0,5,6,98,5,7,1,2,0,3,6]
print(sorted(nums,key=lambda x:1 if x==0 else 0))
运行结果:[5, 6, 98, 5, 7, 1, 2, 3, 6, 0, 0]