📜  python中的lambda函数(1)

📅  最后修改于: 2023-12-03 15:19:27.072000             🧑  作者: Mango

Python中的Lambda函数

Lambda函数也称为匿名函数,是Python中的一种快速定义小型(以及一次使用)的函数的方式。它们的作用是在不调用函数名称的情况下创建简单的、一次性的函数。它们可以作为参数传递给其他函数,或者用于在代码中创建小型、一次性的函数,使代码更加简洁和易于理解。

Lambda函数的语法

Lambda函数的语法很简单,只需要在一个lambda关键字后面加上参数,并在冒号后面放一个表达式即可。表达式的结果就是函数的返回值。例如:

lambda argument_list: expression

其中argument_list是函数的参数列表,可以是0个或多个参数,用逗号分隔;expression是函数的返回值。

Lambda函数的应用

Lambda函数常用于Python中的高阶函数(Higher-order functions)中,例如map()、reduce()、filter()等函数。Lambda函数也可以用于在代码中简洁地定义匿名函数。下面用实例来说明Lambda函数的不同应用场景。

作为高阶函数的参数

map()、reduce()、filter()等函数都可以接受一个函数作为参数,并对列表或其他可迭代对象中的每个元素进行操作。Lambda函数可以作为这些函数的参数,从而生成一个新的列表。

  • map()函数

map()函数的作用是对列表或其他可迭代对象中的每个元素应用一个函数,然后返回一个新的列表。例如,下面的Lambda函数将每个元素平方:

# 使用Lambda函数将列表中的每个元素平方
my_list = [1, 2, 3, 4, 5]
new_list = list(map(lambda x: x ** 2, my_list))
print(new_list)  # [1, 4, 9, 16, 25]
  • reduce()函数

reduce()函数的作用是依次对列表或其他可迭代对象中的元素应用一个函数,直到最终得到一个结果。例如,下面的Lambda函数将两个元素相加:

# 使用Lambda函数将列表中的所有元素相加
from functools import reduce
my_list = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, my_list)
print(result)  # 15
  • filter()函数

filter()函数的作用是返回一个有符合条件的元素组成的新列表。例如,下面的Lambda函数返回所有奇数:

# 使用Lambda函数过滤出列表中的所有奇数
my_list = [1, 2, 3, 4, 5]
new_list = list(filter(lambda x: x % 2 != 0, my_list))
print(new_list)  # [1, 3, 5]
在代码中定义匿名函数

有时候需要在代码中定义一个小型、一次性的函数,而不想写一个完整的函数来实现。Lambda函数可以让这个过程更加简洁和易于理解。例如,下面的Lambda函数将两个元素相乘:

# 在代码中定义一个小型、一次性的Lambda函数
result = (lambda x, y: x * y)(2, 3)
print(result)  # 6
总结

Lambda函数是Python中的一种快速定义小型(以及一次使用)的函数的方式。它们可以作为参数传递给其他函数,或者用于在代码中创建小型、一次性的函数,使代码更加简洁和易于理解。Lambda函数常用于高阶函数中,例如map()、reduce()、filter()等函数。