Python 中使用 lambda 关键字声明匿名函数的详细介绍及示例
Python 允许我们不采用标准方式声明函数 也就是不使用 def 关键字 而是用 lambda 关键字声明匿名函数 不过 Lambda 函数能接受任意数量的参数 但它们只能以表达式形式返回一个值

匿名函数含有一小段代码。它对C和C ++的内联函数进行模拟。但它并非完全等同于内联函数。
下面给出了定义匿名函数的语法。
lambda arguments : expression
例1
x等于一个匿名函数,该匿名函数接受参数a,返回a加10的结果,其中a是参数,a加10是一个经过求值后返回的表达式。
print("sum = ",x(20))
输出:
sum= 30
例2
Lambda函数的多个参数
x等于一个匿名函数,该匿名函数接受a和b作为参数,对a与b求和的表达式进行求值并返回结果。
print("sum = ",x(20,10))
输出:
Sum = 30
为什么要使用lambda函数?
当我们在另一个函数里匿名使用lambda函数时,能更好地描述lambda函数的主要作用。在python中,lambda函数可用作高阶函数的参数。Lambda函数也用于我们所需的场景,考虑以下示例。
例1
函数table(n)用于打印n的表格 def table(n): 返回一个匿名函数,该匿名函数接受参数a并返回a乘以n的结果;a将包含迭代变量i,并且每次函数调用时返回n的倍数 n等于输入函数的返回值,输入内容为“Enter the number?” ,输入函数的参数为字符串类型的“Enter the number?” ,函数返回值转换为整数类型后赋值给n b等于调用函数table并传入n。传入的数字被传递到函数table中。b将包含一个lambda函数。该lambda函数会使用迭代变量i反复调用。 for i in range(1,11): 打印(n,"X",i,"=",b(i)); #使用迭代变量i调用lambda函数b
输出:
Enter the number??10 10 X 1 = 10 10 X 2 = 20 10 X 3 = 30 10 X 4 = 40 10 X 5 = 50 10 X 6 = 60 10 X 7 = 70 10 X 8 = 80 10 X 9 = 90 10 X 10 = 100
例2
使用lambda函数与过滤器
包含奇数的列表
List = {1,2,3,4,10,123,22}
Oddlist等于通过filter函数过滤List得到的列表,filter函数使用lambda函数进行筛选,lambda函数用于判断元素是否能被3整除,能被3整除的元素组成新列表,即Oddlist包含所有使lambda函数求值为真的List中的项
print(Oddlist)
输出:
[3,123]
例3
使用lambda函数与map
编写程序,使用map函数将列表中的每个数字乘以三。
List = {1,2,3,4,10,123,22}
新列表 = 列表(将列表中的每个元素映射到一个函数,该函数将元素乘以3)# 这会返回列表中每个元素的三倍并将其添加到新列表中
print(new_list)
输出:
[3,6,9,12,30,66,369]
下一篇 »
贤弟带你简单了解堆排序算法及其原理