匿名函数

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)

  

原文地址:https://www.cnblogs.com/songdanlee/p/11190873.html