Python函数-lambda函数的简介和用法
Python中的lambda函数是一种简单的匿名函数,可以用一行代码定义一个函数,常用于函数传递中的参数,简化代码结构。
lambda函数的定义方式为:lambda 参数列表:函数体,示例如下:
f = lambda x, y: x + y
上述代码可以定义一个lambda函数,用于接收两个参数x和y,并返回它们的和。
在lambda函数中,参数列表和函数体都是可以省略的,如果只有一个参数,则不需要使用括号,示例如下:
f = lambda x: x * 2
上述代码定义了一个lambda函数,用于接收一个参数x,并返回它的两倍。
lambda函数的用途非常广泛,在Python中可以用于各种场景。下面介绍一些lambda函数的常见用法:
1. 作为参数传递给函数
lambda函数可以直接作为参数传递给其他函数,常用于函数式编程中。
例如,内置函数map可以对一个列表中的每个元素进行相同的处理,示例如下:
lst = [1, 2, 3, 4] lst2 = map(lambda x: x * 2, lst) print(list(lst2)) # [2, 4, 6, 8]
上述代码使用lambda函数将列表lst中的每个元素乘以2,并返回处理后的列表lst2。
2. 排序
lambda函数可以用于对列表、字典等数据类型进行排序,上述示例中的map函数返回的列表lst2,可以通过sorted函数按照元素大小进行排序,示例如下:
lst = [1, 3, 2, 4] lst_sorted = sorted(lst, key=lambda x: x) print(lst_sorted) # [1, 2, 3, 4]
上述代码使用lambda函数作为sorted函数的key参数,根据元素大小进行排序。
3. 过滤列表
lambda函数可以用于对列表进行筛选,只保留符合条件的元素。
例如,可以使用filter函数将列表lst中的偶数过滤出来,示例如下:
lst = [1, 2, 3, 4, 5, 6] lst_filtered = filter(lambda x: x % 2 == 0, lst) print(list(lst_filtered)) # [2, 4, 6]
上述代码使用lambda函数作为filter函数的参数,筛选出列表lst中的偶数。
4. 字典排序
lambda函数可以用于对字典进行排序,示例如下:
dic = {'a': 2, 'b': 1, 'c': 3}
dic_sorted = sorted(dic.items(), key=lambda x: x[1])
print(dic_sorted) # [('b', 1), ('a', 2), ('c', 3)]
上述代码使用lambda函数作为sorted函数的key参数,根据字典的值进行排序,将字典转换为元组列表返回。
总之,lambda函数是Python中非常实用的特性,常用于简化代码结构、函数传递等场景,掌握其用法能够提高编程效率。
