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

Python中lambda表达式的使用方式

发布时间:2023-06-24 01:28:44

Python中的lambda表达式是一种匿名函数,它可以接受任意数量的参数,但只能返回一个表达式的值。

Lambda表达式的基本语法如下:

lambda arguments: expression

其中,arguments 是逗号分隔的参数列表,expression 是要返回的表达式。

下面是一些示例:

1. 计算平方

square = lambda x: x*x

print(square(5)) # 25

在上面的代码中,我们定义了一个lambda表达式square,它接受一个参数x,返回x的平方。

2. 排序

nums = [(1,2), (3,1), (4,4), (2,3)]

nums.sort(key=lambda x: x[1])

print(nums) # [(3, 1), (1, 2), (2, 3), (4, 4)]

在上面的代码中,我们使用了lambda表达式作为sort方法的key参数,它接受一个元组x,返回元组的第二个元素。

3. 过滤

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

evens = list(filter(lambda x: x%2==0, nums))

print(evens) # [2, 4, 6, 8, 10]

在上面的代码中,我们使用了lambda表达式作为filter函数的参数,它接受一个数x,返回x是否为偶数的布尔值。

4. 映射

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

squares = list(map(lambda x: x*x, nums))

print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

在上面的代码中,我们使用了lambda表达式作为map函数的参数,它接受一个数x,返回x的平方。

5. 递归

factorial = lambda n: 1 if n==0 else n * factorial(n-1)

print(factorial(5)) # 120

在上面的代码中,我们定义了一个递归的lambda表达式factorial,它接受一个参数n,返回n的阶乘。

通过以上示例,我们可以看出lambda表达式在Python中的使用非常广泛,它简洁而又强大,尤其适用于函数式编程。在实际编程中,我们可以根据需要灵活地使用lambda表达式,提高代码的可读性和效率。