当我们需要对一个函数进行简单的操作,但不希望定义一个完整的函数时,Python提供了匿名函数的机制,也就是lambda表达式。
使用格式
lambda argument_list: expression
其中,argument_list
为函数的参数列表,用逗号分隔,expression
为函数的返回值。在通过lambda
定义函数后,可以直接调用这个函数。
示例说明
示例一
假定我们有一个包含数字的列表,将列表中的每个元素乘以2,并生成新的列表。
old_list = [2, 4, 6, 8, 10]
new_list = list(map(lambda x: x * 2, old_list))
print(new_list)
输出结果为:
[4, 8, 12, 16, 20]
在这个例子中,我们使用lambda
定义了一个匿名函数lambda x: x * 2
,来对原始列表中的每个元素进行操作。然后,使用map
函数将匿名函数应用到old_list
中的每个元素上,生成新列表new_list
。
示例二
假定我们有一个列表,需要移除其中的偶数元素。
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list2 = list(filter(lambda x: x % 2 != 0, list1))
print(list2)
输出结果为:
[1, 3, 5, 7, 9]
在这个例子中,我们使用lambda
定义了一个匿名函数lambda x: x % 2 != 0
,来判断每个元素是否为奇数。然后,使用filter
函数将匿名函数应用到list1
中的每个元素上,得到新列表list2
。filter
函数返回的是一个迭代器,需要使用list
函数将其转化为列表。
总结
以上两个示例说明,lambda
表达式可以在需要简单操作时提供方便。当我们需要对列表进行一些简单的操作时,可以使用map
、filter
函数,配合匿名函数使用,以提高代码的可读性。