Python 匿名函数

  • Post category:Python

当我们需要对一个函数进行简单的操作,但不希望定义一个完整的函数时,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中的每个元素上,得到新列表list2filter函数返回的是一个迭代器,需要使用list函数将其转化为列表。

总结

以上两个示例说明,lambda表达式可以在需要简单操作时提供方便。当我们需要对列表进行一些简单的操作时,可以使用mapfilter函数,配合匿名函数使用,以提高代码的可读性。