欢迎访问宙启技术站
智能推送

Python中的lambda函数——快速简便的匿名函数

发布时间:2023-06-05 17:38:46

一、什么是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函数,这样可以使您的代码更加简洁和清晰。