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

`lambda`表达式的实际用途和示例

发布时间:2023-06-02 22:29:58

lambda表达式是Python中的一种匿名函数,可以用于临时定义小型函数,或者作为另一个函数的参数传递。它的实际用途非常广泛,可以在代码中的各个环节中使用它,从简单的变换到复杂的算法中。

以下是lambda表达式在实际开发中的一些应用示例:

1、函数变换

在变换函数返回值时,我们可以使用lambda表达式。例如,将一个列表中的所有元素都取平方:

lst = [1, 2, 3, 4, 5]
squared_lst = list(map(lambda x: x**2, lst))
print(squared_lst) # 输出 [1, 4, 9, 16, 25]

上述代码中,lambda表达式lambda x: x**2用于对列表中的元素进行平方操作,map函数用于将结果存储在一个新的列表中。

2、排序

在排序列表时,我们可以根据某个关键字进行排序。例如,将一个字典列表按照其中一个键值的大小进行排序:

lst = [{'name':'Tom', 'age':20}, {'name':'Lucy', 'age':19}, {'name':'Jerry', 'age':21}]
sorted_lst = sorted(lst, key=lambda x: x['age'])
print(sorted_lst) # 输出 [{'name': 'Lucy', 'age': 19}, {'name': 'Tom', 'age': 20}, {'name': 'Jerry', 'age': 21}]

上述代码中,lambda表达式用于指定排序关键字,即按照字典中的age 键值作为排序关键字进行排序。

3、过滤

在对列表进行过滤时,我们可以使用lambda表达式来筛选出符合条件的元素或字典。例如,从一个字符串列表中找到所有以“a”开头的字符串:

lst = ['apple', 'banana', 'avocado', 'orange']
filtered_lst = list(filter(lambda x: x.startswith('a'), lst))
print(filtered_lst) # 输出 ['apple', 'avocado']

上述代码中,lambda表达式用于指定过滤条件,即所有以“a”开头的字符串。

4、高阶函数

在函数参数中可以使用lambda表达式。例如,使用lambda表达式作为sort()函数的排序参数:

def sort_by_length(words):
    words.sort(key = lambda x: len(x))
    return words

lst = ['apple', 'banana', 'avocado', 'orange']
sorted_lst = sort_by_length(lst)
print(sorted_lst) # 输出 ['apple', 'orange', 'banana', 'avocado']

上述代码中,lambda表达式用作sort()函数的排序参数,即按照字符串长度进行排序。

5、构造新的数据结构

lambda表达式可以构造新的数据结构,例如构造一个字典:

lst1 = ['apple', 'banana', 'avocado', 'orange']
lst2 = [1, 2, 3, 4]
new_dict = dict(zip(lst1, map(lambda x: x**2, lst2)))
print(new_dict) # 输出 {'apple': 1, 'banana': 4, 'avocado': 9, 'orange': 16}

上述代码中,lambda表达式用于对列表lst2的元素进行平方操作,并使用zip()函数将两个列表打包成一个字典。

总之,lambda表达式可以在很多方面发挥作用,在Python代码中应用广泛,具有非常重要的实际价值。