lambda表达式是一行函数。 它们在其他语言中也被称为匿名函数。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。
原型 lambda 参数:操作(参数)
例子
add = lambda x, y: x + y
print(add(3, 5))
# Output: 8
这还有一些lambda表达式的应用案例,可以在一些特殊情况下使用:
列表排序
a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key=lambda x: x[1]) #基于第二个数来升序
print(a)
# Output: [(13, -3), (4, 1), (1, 2), (9, 10)]
列表并行排序
list1=[‘a’,’d’,’z’,’e’]
list2=[1,4,3,2]
data = zip(list1, list2)
data = sorted(data)
list1, list2 = map(lambda t: list(t), zip(*data))
print(data)
print(list1)
print(list2)
输出:
[(‘a’, 1), (‘d’, 4), (‘e’, 2), (‘z’, 3)]
[‘a’, ‘d’, ‘e’, ‘z’]
[1, 4, 2, 3]
下面是个Lambda表达式的例子:
#!/usr/bin/envpython
li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li=sorted(li, key=lambda x:x["age"])
print(li)
如果不用Lambda表达式,而要写成常规的函数,那么需要这么写:
#!/usr/bin/envpython
def comp(x):
return x["age"]
li=[{"age":20,"name":"def"},{"age":25,"name":"abc"},{"age":10,"name":"ghi"}]
li=sorted(li, key=comp)
print(li)
最终结果:
[{‘age’: 10, ‘name’: ‘ghi’}, {‘age’: 20, ‘name’: ‘def’}, {‘age’: 25, ‘name’: ‘abc’}]