Python中lambda表达式的使用方式
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表达式,提高代码的可读性和效率。
