Lambda 函数

Python 中级:面向开发者

Jasmin Ludolf

Senior Data Science Content Developer

简单函数

def average(values):
    average_value = sum(values) / len(values)
    return average_value
Python 中级:面向开发者

Lambda 函数

  • lambda 关键字
    • 表示"匿名函数"

 

lambda
Python 中级:面向开发者

Lambda 函数

  • lambda 关键字
    • 表示"匿名函数"

 

lambda arguments
Python 中级:面向开发者

Lambda 函数

  • lambda 关键字
    • 表示"匿名函数"

 

lambda arguments:
Python 中级:面向开发者

Lambda 函数

  • lambda 关键字
    • 表示"匿名函数"

$$

lambda arguments: expression
  • 约定:单个参数用 x
  • expression 等同于函数体
  • 无需 return 语句

$$

  • 可以 存为变量
Python 中级:面向开发者

创建 lambda 函数

# 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>
Python 中级:面向开发者

使用 lambda 函数

# 计算平均值
(lambda x: sum(x) / len(x))
Python 中级:面向开发者

使用 lambda 函数

# 计算平均值
(lambda x: sum(x) / len(x))([3, 6, 9])

$$

$$

# 打印平均值
print((lambda x: sum(x) / len(x))([3, 6, 9]))
6.0
Python 中级:面向开发者

存储并调用 lambda 函数

# 将 lambda 函数存为变量
average = lambda x: sum(x) / len(x)

# 调用 average 函数 print(average([3, 6, 9]))
6.0
Python 中级:面向开发者

多个参数

# 具有两个参数的 lambda 函数
power = lambda x, y: x**y


# 计算 2 的 3 次方 print(power(2, 3))
8
Python 中级:面向开发者

与可迭代对象配合的 lambda 函数

  • 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']
Python 中级:面向开发者

自定义 vs. lambda 函数

场景 函数类型
复杂任务 自定义
多次执行相同任务 自定义
仅执行一次 Lambda
简单任务 Lambda
Python 中级:面向开发者

Vamos praticar!

Python 中级:面向开发者

Preparing Video For Download...