匿名函数
1 定义:
- 关键字:lambda
- 语法:
- lambda 参数1,[参数2,参数3,...]: 表达式
- 如:直接使用匿名函数(不提倡这种使用方法)
# 定义一个匿名函数,将函数存储到变量get_sum中 get_sum = lambda a, b:a+b print(type(get_sum)) print(get_sum(1, 2))
2 注意事项:
- 不能存在复杂的业务逻辑,比如 :循环,分支(三元条件表达式除外)
- 不能存在 return
3.常用场景:
-
如1(map()函数):
- 例1:
list1 = [1, 2, 3, 4] list2 = map(lambda x:x **3, list1) print([item for item in list2])
list1 = [1,2,3,4] list2 = [2,3,4] list3 = map(lambda a,b:a+b, list1, list2) print([item for item in list3])
- 如2(sort()关键字key):
list1 = [('Tom', 20), ('David', 19), ('Jordon', 58)] # 匿名函数 list1.sort(key=lambda x:x[1]) # 按年龄排序 print(list1) dict1 = [{'name': 'Tom', 'age': 20}, {'name': 'Jack', 'age': 18}, {'name': 'Rose', 'age': 30}] # 列表中存储的元素为字典时,不支持默认的排序 # dict1.sort() TypeError dict1.sort(key=lambda d:d['age']) print(dict1)