Python 中 Lambda 函数的使用及实例解析

文章 , 技术分享
964 0

1. 排序和自定义排序

lambda 函数通常用于自定义排序函数,例如,按照字符串长度排序:

words = ['apple', 'banana', 'kiwi', 'orange']
sorted_words = sorted(words, key=lambda x: len(x))
# sorted_words: ['kiwi', 'apple', 'banana', 'orange']

2.过滤器和条件筛选
lambda 函数也可以用于筛选和过滤,例如,从列表中过滤出所有的偶数:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# even_numbers: [2, 4, 6, 8]

3. 映射和数据转换
lambda 函数还可以用于映射和数据转换,例如将列表中的所有元素转换为字符串:

numbers = [1, 2, 3, 4, 5]
string_numbers = list(map(lambda x: str(x), numbers))
# string_numbers: ['1', '2', '3', '4', '5']

4. 匿名函数
由于 lambda 函数是匿名函数,因此它们经常用于传递给其他函数,例如:

# 将匿名函数作为参数传递给 sorted()
numbers = [(2, 1), (1, 2), (3, 3), (2, 2)]
sorted_numbers = sorted(numbers, key=lambda x: x[1])
# sorted_numbers: [(2, 1), (1, 2), (2, 2), (3, 3)]

# 将匿名函数作为参数传递给 map()
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
# squared_numbers: [1, 4, 9, 16, 25]

5. 将多个函数组合
在一些场景下,我们需要将多个函数组合在一起,这时可以使用 lambda 函数。例如:

# 将两个函数组合在一起
numbers = [1, 2, 3, 4, 5]
function = lambda x: x ** 2
squared_sum = sum(map(function, numbers))
# squared_sum: 55

# 将三个函数组合在一起
function = lambda x: x ** 2
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(function, numbers))
even_numbers = list(filter(lambda x: x % 2 == 0, squared_numbers))
sum_of_even_numbers = sum(even_numbers)
# sum_of_even_numbers: 20

总的来说,lambda 函数可以在许多场景下用于简洁高效的操作,但需要注意的是,如果函数体较为复杂,最好使用正常的函数定义,以提高

最后更新 2023-07-15
评论 ( 0 )
OωO
隐私评论