Python不使用lambda实现二维列表按指定规则排序的方法
list.sort()的key参数接收的是一个可调用对象,排序时会自动将列表的每个元素作为参数传入该对象,不需要手动传递参数,直接把函数名传给key即可,函数内部返回对应的排序规则值就行。
完整可运行代码如下:
lst = [[7, 0], [4, 4], [7, 1], [5, 0], [6, 1], [5, 2]] def compare(x): # 第一个元素取负值实现逆序,第二个元素直接返回实现正序 return (-x[0], x[1]) lst.sort(key=compare) print(lst)
运行后输出结果和lambda实现的效果完全一致:[[7, 0], [7, 1], [6, 1], [5, 0], [5, 2], [4, 4]]
内容的提问来源于stack exchange,提问作者Sharhad Bashar
相关产品推荐
相关产品推荐

