pairs = [(1, ‘one’), (2, ‘two’), (3, ‘three’), (4, ‘four’)]
pairs.sort(key=lambda pair: pair[1])
pairs
[(4, ‘four’), (1, ‘one’), (3, ‘three’), (2, ‘two’)]
今天在看python文档时,遇到了关于lambda表达式的一种使用方法,有些不解为什么输出是这样的,查阅资料之后,特此记录一下
1、首先我们需要明白lambda表达式是什么,下面给出一张在网上找到的示意图,感觉还挺清晰的:
2、那么接下来需要搞明白的是pairs.sort(key=lambda pair: pair[1]),这行代码是什么意思?
1.首先这里的lambda表达式是作为一个函数进行传递参数的
2.接下来需要明白sort()函数的用法,sort()函数里面有两个参数,形式如下:sort(key=None, reverse=False)
默认情况下:sort()是进行升序排序的,且排序规则是根据关键字key的值进行排序的,如若需要进行降序排序,只需要将reverse = True即可
3.那么这里的lambda表达式传给sort()函数的参数是 表示用list中第二个参数即’one’作为排序的依据的,根据ASCII的值,由小到大分别是:f,o,t,t。所以也就出现了[(4, ‘four’), (1, ‘one’), (3, ‘three’), (2, ‘two’)]这样的排序结果