匿名函数
匿名函数的关键字为lambda,冒号前面是形参 冒号后面是返回值
from functools import reduce
def add(x,y):
return x + y
print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
15
print(list(map(lambda x:x ** 2,range(5))))
[0, 1, 4, 9, 16]
#求10的阶乘
print(reduce(lambda x,y:x*y,range(1,11)))
3628800
#匿名函数的默认参数
f = lambda x,y=2:x**y
print(f(3))
print(f(2,4))
9
16
#匿名函数的可变参数:
f = lambda *args:sum(args)
print(f(1,2,3,4,5,6))
2
#匿名函数的关键字参数:
f = lambda **kwargs:kwargs.values()
print(f(name='fentiao',age=10))
dict_values(['fentiao', 10])
#偶数
print(list(filter(lam1bda x : x%2==0,range(1,101))))
匿名函数练习
“”"
nums = [0, 7, 0, 1, 2, 1, 5, 1, 7, 8, 0, 67, 1, 3, 4]
“”"
nums = [0, 7, 0, 1, 2, 1, 5, 1, 7, 8, 0, 67, 1, 3, 4]
print(sorted(nums,key=lambda x:1 if x == 0 else 0))
print(sorted(nums,key=lambda x : x==0 ))
结果
[7, 1, 2, 1, 5, 1, 7, 8, 67, 1, 3, 4, 0, 0, 0]
[7, 1, 2, 1, 5, 1, 7, 8, 67, 1, 3, 4, 0, 0, 0]