Python中的lambda函数——快速简便的匿名函数
一、什么是lambda函数
Python中的lambda函数,也称为匿名函数,是一种简洁、快速且可以被立即调用的函数。它可以在不需要给函数名称的情况下定义函数,这样可以大大简化代码,并且在不需要完整函数定义的情况下使用函数。
二、lambda函数语法
lambda函数的语法格式如下:
lambda [arg1[, arg2, ..., argn]]: expression
其中lambda是固定关键字,arg1, arg2, ..., argn是函数的参数,:是函数参数和函数操作部分的分界符,expression是函数的操作部分,即函数返回值。
下面是一个简单示例:
add = lambda x,y:x+y
print(add(1,2))
输出结果为: 3
上面的代码等价于:
def add(x, y):
return x + y
print(add(1,2))
输出结果为: 3
lambda x, y:x + y与def add(x, y):return x + y是等价的,只是定义方式不一样而已。
三、lambda函数的优点
1. 简单易懂
lambda函数只包含一个表达式,这也使得代码看起来非常简单易懂。
2. 快速方便
lambda函数可以在代码中快速定义并使用,而不需要分离出单独的函数。
3. 可用于函数式编程
lambda函数可以作为参数传递给其他函数,这使得它在函数式编程中非常有用。
四、lambda函数的应用场景
1. 作为函数参数
可以将lambda函数作为参数传递给其他函数。下面是一个示例:
my_list = [2, 8, 4, 16, 32, 64]
result = list(filter(lambda x: (x % 2 == 0), my_list))
print(result)
输出结果为: [2, 8, 4, 16, 32, 64]
上面的代码中,filter()函数是Python内建函数,它可以过滤掉不符合条件的元素,并返回过滤后的结果。在这个示例中,lambda函数过滤了列表my_list中的奇数元素,并将偶数元素存储在一个新列表中。
2. 序列排序
lambda函数也可以用于排序序列。下面是一个示例:
my_list = [(2, "John"), (6, "Mary"), (3, "David"), (4, "Lisa")]
my_list.sort(key=lambda x: x[0])
print(my_list)
输出结果为: [(2, 'John'), (3, 'David'), (4, 'Lisa'), (6, 'Mary')]
上面的代码中,sort()函数是Python内建函数,可以对列表进行排序。在这个示例中,lambda函数根据元组中的 个元素对列表进行排序。
3. 列表解析
lambda函数可以用于列表解析中。下面是一个示例:
my_list = [2, 8, 4, 16, 32, 64]
result = [x for x in my_list if x % 2 == 0]
print(result)
输出结果为: [2, 8, 4, 16, 32, 64]
上面的代码中,列表解析用于筛选列表my_list中的偶数元素,并将它们存储在一个新列表中。
五、总结
lambda函数是Python中非常有用的功能,因为它允许您更快速、更简洁地编写代码,并且可以在几种应用场景中使用。建议你在编写Python代码时学习使用lambda函数,这样可以使您的代码更加简洁和清晰。
