Python中的lambda函数:简单而强大的一行函数
Python中的lambda函数是一种非常简单的函数形式,通常只有一行代码。可以用于多种场合,如列表排序、过滤、映射等。
### lambda函数的定义
lambda函数的定义格式为:
lambda arguments: expression
其中,arguments是参数列表,可以有多个或者没有参数,也可以使用默认参数。expression是一个表达式,用于计算和返回结果。
例如,以下是一个lambda函数的简单例子:
>>> func = lambda x: x * 2 >>> func(3) 6
以上代码定义了一个lambda函数,将函数对象赋值给变量func。该函数有一个参数x,返回x的两倍。调用函数时,传入参数3,返回6。
### lambda函数的应用
lambda函数可以用于多种场合,例如:
1. 列表排序
可以使用sorted函数对列表进行排序,并使用lambda函数指定排序规则。例如,将一个列表按照字符串长度排序:
>>> words = ['python', 'javascript', 'java', 'c', 'ruby'] >>> sorted(words, key=lambda x: len(x)) ['c', 'java', 'ruby', 'python', 'javascript']
以上代码使用了lambda函数作为排序规则,传入参数x表示列表中的每个元素,返回值为元素的长度。sorted函数按照该规则进行排序,返回排序后的列表。
2. 列表过滤
可以使用filter函数对列表进行过滤,并使用lambda函数指定过滤条件。例如,将一个列表中的奇数过滤出来:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(filter(lambda x: x % 2 == 1, numbers)) [1, 3, 5, 7, 9]
以上代码使用了lambda函数作为过滤条件,传入参数x表示列表中的每个元素,返回值为当元素为奇数时返回True,否则返回False。filter函数按照该规则进行过滤,返回过滤后的列表。
3. 列表映射
可以使用map函数对列表进行映射,并使用lambda函数指定映射规则。例如,将一个列表中的每个元素都乘以2:
>>> numbers = [1, 2, 3, 4, 5] >>> list(map(lambda x: x * 2, numbers)) [2, 4, 6, 8, 10]
以上代码使用了lambda函数作为映射规则,传入参数x表示列表中的每个元素,返回值为将元素乘以2的结果。map函数按照该规则进行映射,返回映射后的列表。
### 总结
lambda函数是Python中的一种强大且简单的函数形式。它可以用于多种场合,如列表排序、过滤、映射等。语法简洁、使用方便,是Python中重要的函数形式之一。
