L=[('b',2),('a',1),('c',3),('d',4)]
#2、利用参数 cmp 排序
sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
#3、利用参数 key 排序
sorted(L, key=lambda x:x[1])
#结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
#4、按年龄升序
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda s: s[2])
结果:
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
#5、按年龄降序
sorted(students, key=lambda s: s[2], reverse=True)
#结果:
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
lambda x, y: x*y # 函数输入是x和y,输出是它们的积x*y
lambda:None # 函数没有输入参数,输出是None
lambda *args: sum(args) # 输入是任意个数参数,输出是它们的和(隐性要求输入参数必须能进行算术运算)
lambda **kwargs: 1 # 输入是任意键值对参数,输出是1
#为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:
time.sleep=lambda x: None
#这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。
#例如:
time.sleep(3) # 程序不会休眠 3 秒钟,而是因为lambda输出为None,所以这里结果是什么都不做、
假如a是一个由元组构成的列表,对该列表进行排序时,我们需要用到参数key,也就是关键词,如下面代码所示,lambda是一个匿名函数,是固定写法;x表示匿名函数的输入,即列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示匿名函数的输出,即元组里的第一个元素,即key = x[0];所以这句命令的意思就是按照列表中第一个元素进行排序
a = [('b', 4), ('a', 12), ('d', 7), ('h', 6), ('j', 3)]
a.sort(key=lambda x: x[0])
print(a)<br>>>>[('a', 12), ('b', 4), ('d', 7), ('h', 6), ('j', 3)]
更多内容参考博客:https://blog.csdn.net/PY0312/article/details/88956795