HOWTO · Python
在 Python 中在 for 迴圈使用 Lambda 函式
本教程演示瞭如何將 for lambda 函式與 for 迴圈一起使用。
本頁內容
Lambda 函式或匿名函式是沒有名稱的 Python 函式。這些函式是通過使用 lambda 關鍵字建立的,而不是傳統上用於在 Python 中定義普通函式的 def 關鍵字。
與普通函式相比,Lambda 函式不僅更小,而且還有一些不同之處。最重要的是沒有明確定義的 return 語句,並且僅限於一個表示式。
然而,lambda 函式就像普通的 Python 函式一樣接受多個引數。
在 Python 中,Lambda 函式可以如下實現。
lambda arguments: expressions:
當需要建立用作另一個函式中的引數的函式物件時,將使用 Lambda 函式。
當與諸如 map() 之類的高階函式一起使用時,Lambda 的威力尤為明顯。這些函式接受其他函式物件作為引數。
此外,lambda 函式還可用於執行僅在短時間內需要匿名函式的操作。一個很好的例子是使用 lambda 函式和 for 迴圈對可迭代的所有元素執行特定操作。
下面的程式說明了我們如何使用 for 迴圈來迭代數字列表,並且在這種情況下使用 lambda 函式作為增量器。
nums1 = [45, 46, 47, 48, 50]
nums2 = []
for i in nums1:
def x(i):
return i + 1
nums2.append(x(i))
print(nums2)
輸出:
[46, 47, 48, 49, 51]
For 迴圈可用於迭代其他序列,例如元組、字串、字典和集合。雖然 lambda 函式只能有一個表示式,但對可以使用的資料型別沒有限制。
下面的示例說明了如何使用 for 迴圈和 lambda 函式迭代字串列表。
fruits = ["mango", "apple", "melon", "pineapple"]
fruits_upper = []
for fruit in fruits:
def x(fruit):
return fruit.upper()
fruits_upper.append(x(fruit))
print(fruits_upper)
輸出:
['MANGO', 'APPLE', 'MELON', 'PINEAPPLE']
Lambda 函式可與 for 迴圈一起使用以建立 lambda 物件列表。使用這些物件,我們可以使用 for 迴圈對可迭代的元素執行操作。
這是有益的,特別是當目的是在迭代可迭代物件的同時進行更改而不會出現執行時錯誤時。
list = [1, 2, 3, 4, 5]
def add_two(x):
return lambda: x + 2
list = [add_two(i) for i in list]
for element in list:
print(element())
輸出:
3
4
5
6
7