lambda是一个用于创建匿名函数的关键字。匿名函数是一种没有具体名称的小型函数,通常用于需要一个简单函数但不想正式定义一个完整函数的情况。
lambda表达式:
lambda arguments :expression
#lambda:关键字
#arguments:函数参数,可以有多个参数
#expression:函数返回值
示例用法:
#示例一
add = lambda x, y : x + y
print(add(3 , 5))
#示例二:用作高阶函数的参数
numbers = [1, 2, 3, 4]
squared = map(lambda x : x ** 2, numbers)
print(list(squared)) #[1, 4, 9, 16]
#示例三:用于条件表达式
is_even = lambda x : x % 2 == 0
print(is_even(4)) #True
print(is_even(7)) #False
注意:虽然lambda函数很方便,但对于一些复杂的逻辑,建议使用正式的def语句定义函数,以提高代码的可读性
补充:lambda表达式可以应用在常规函数不可能存在的地方
1.高阶函数的参数
#使用lambda函数作为sorted函数的key参数,按字符串长度排序
string = ['apple', 'banana', 'car']
sorted_string = sorted(string, key = lambda x: len(x))
print(sorted_string)
2.事件处理
#处理按钮点击事件
button_click = lambda:print("button clicked")
button_click()
3.回调函数
def process_data(data, callback):
processed_data = data * 2
callback(processed_data)
process_data(10, lambda x: print(f"processed data:{x}"))