关键字lambda表示匿名函数,冒号前面的x表示函数参数。
匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。
用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数
可以带默认值c = lambda x,y=2: x+y #使用了默认值
a = lambda *z:z #*z返回的是一个元祖
c = lambda **Arg: Arg #arg返回的是一个字典
#lambda返回的值,结合map,filter,reduce使用
filter(lambda x:x%3==0,[1,2,3,4,5,6]) #[3, 6]
list(map(lambda x: x*x, [1, 2, 3])) #[1, 4, 9]
>>> L = [1,2,3,4]
>>> sum = reduce(lambda x,y:x+y,L)
>>> sum
10
>>> death = [ ('James',32),
('Alies',20),
('Wendy',25)]
>>> sorted(death,key=lambda age:age[1]) #按照第二个元素,索引为1排序
[('Alies', 20), ('Wendy', 25), ('James', 32)]
sentence = "Welcome To Beijing!"
words = sentence.split()
print(words)
print(list(map(lambda x: len(x), words)))
#['Welcome', 'To', 'Beijing!']
#[7, 2, 8]
按照字典的value排序:
a = {'abc': 5, 'def': 2, 'ghi': 3}
d = sorted(a.items(), key=lambda x: x[1])
print(d)
#[('def', 2), ('ghi', 3), ('abc', 5)]