函數有一個返回值,並且只有一句代碼時使用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
至此結束,其余用法就不在此敘述了。