lambda表达式
使用场景:
函数有一个返回值,并且只有一句代码时使用lambda简化!
文尾有终极简化写法,有兴趣可以了解!
语法:
lambda 参数列表 : 表达式
注:参数列表可有可无
实例:
1.不带参数
fn = lambda: 100
print(fn())
# output 100
print(fn)
#output 函数地址
2.带参数
fn = lambda a, b: a + b
print(fn(2, 3))
# output 5
3.默认参数
fn = lambda a, b, c=100: a + b + c
print(fn(2, 4, 4))
# output 10
print(fn(2, 4))
# output 106
4.作判断使用(与三目运算符连用)
fn = lambda a, b: a if a > b else b
print(fn(4, 10))
# output 10
5.作拆包使用
fn = lambda *args: args
print(fn(10, 20, 30))
# output (10, 20, 30)
6.终极用法
一行搞定1-100累加和:
import functools
print(functools.reduce(lambda a, b: a + b, range(1, 101)))
# 5050
一行搞定1-100偶数和:
import functools
print(functools.reduce(lambda a, b: a + b, list(filter((lambda x: x % 2 == 0), range(101)))))
# 2550
至此结束,其余用法就不在此叙述了。