python排序sort方法的key参数

python排序sort方法的key参数

key接收一个有一个参数的函数,这个参数就是“当前”要比较的操作数。因为在默认的比较规则不适用于当前情况时,就要使用这个Key参数。比如:

test_list = [['aab', 23], ['aac', 23], ['aaa', 50], ['ccc', 70], ['bbb', 70],['aac',80]]
if __name__ == '__main__':
    test_list.sort(key=lambda x: (-x[1], x[0]))
    print(test_list)

test_list列表中每个元素都是一个列表,我们想以数字做为比较的主键,而字母做为比较的从键时就要用到key参数和返回元组这个技术,上面的例子是以数字为主键降序排列,当数字相同时比较字母(字母为升序),x[1]前面的负号是控制数字升降序列的,因为sort方法默认是<比较。

PS:这个负号只能放到数字前面,不能放在字母前面,因为在字母前面加负号没有意义。

Comments are closed.