Intermediate Python for Developers
Jasmin Ludolf
Senior Data Science Content Developer
def average(values):
average_value = sum(values) / len(values)
return average_value
lambda 關鍵字
lambda
lambda 關鍵字
lambda arguments
lambda 關鍵字
lambda arguments:
lambda 關鍵字$$
lambda arguments: expression
xexpression 相當於函式主體return 陳述式$$
# Lambda 平均值函式
print(lambda x: sum(x) / len(x))
<function <lambda> at 0x7f11ab813d80>
# 自訂平均值函式
def average(x):
return sum(x) / len(x)
print(average)
<function average at 0x7f11ab813ec0>
# 取得平均值
(lambda x: sum(x) / len(x))
# 取得平均值
(lambda x: sum(x) / len(x))([3, 6, 9])
$$
$$
# 印出平均值
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
# 將 lambda 函式存成變數 average = lambda x: sum(x) / len(x)# 呼叫平均值函式 print(average([3, 6, 9]))
6.0
# 具有兩個引數的 lambda 函式 power = lambda x, y: x**y# 計算 2 的 3 次方 print(power(2, 3))
8
map() 會將函式套用到可疊代物件中的「所有」元素names = ["john", "sally", "leah"]# 在 map() 中套用 lambda 函式 capitalize = map(lambda x: x.capitalize(), names)print(capitalize)
<map object at 0x7fb200529c10>
# 轉成清單
print(list(capitalize))
['John', 'Sally', 'Leah']
| 情境 | 函式類型 |
|---|---|
| 任務複雜 | 自訂 |
| 重複同一任務 | 自訂 |
| 只做一次 | Lambda |
| 任務單純 | Lambda |
Intermediate Python for Developers