對于一切很模糊的知識,首要的是抓住概念的定義。
lambda:在 Python 中用于創建匿名函數的關鍵字。
也即,lambda是一種關鍵字,這種關鍵字的作用是創建匿名函數。
這一段很好懂,就是匿名函數有點懵。
什么是匿名函數?先不管定語部分“匿名”,什么是函數?
函數就是一個加工廠,輸入參數,輸出結果。
那匿名函數呢?匿名函數就是沒有函數名的函數。平時寫一個實現某種功能的小函數,都需要def func_name(**args,**kewargs),有了lambda,就可以省略這個定義的操作啦。
直接 lambda arguments: expression
這里的expression是一個表達式,而不是代碼塊。所以你,這個lamda就是用來創建一個功能比較簡單,一個表達式就能寫完的函數。
下面舉例:
# 使用 lambda 定義一個簡單的加法函數
add = lambda x, y: x + y# 調用 lambda 函數
result = add(3, 5)
print(result) # 輸出: 8
在這個例子中,lambda 函數接受兩個參數 x 和 y,并返回它們的和。add 變量保存了這個匿名函數,之后可以像普通函數一樣調用。
但更常見的情況是lambda函數通常在需要傳遞函數作為參數的地方使用,比如在 map、filter、sorted 等函數中
# 使用Lambda函數將列表中的每個元素平方
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers) # 輸出: [1, 4, 9, 16, 25]
#numbers 是一個列表,[1, 2, 3, 4, 5]。
#lambda x: x**2 是一個Lambda函數,它接受一個參數 x,并返回 x 的平方。
#map() 函數將該Lambda函數映射到 numbers 列表的每個元素上。
#結果是一個新的可迭代對象,其中包含每個元素的平方值
#使用list將可迭代對象變為數組
注:這里再補充介紹一下map函數,
map(function, iterable, ...)
#function: 要應用于每個可迭代對象元素的函數。
#iterable: 一個或多個可迭代對象,可以是列表、元組等。
map() 函數是Python內置的一個高階函數,它接收一個函數和一個或多個可迭代的對象作為參數,然后將該函數應用到所有可迭代對象的對應元素上,返回一個新的可迭代對象(通常是一個列表)