假设您有一个这样的词典列表:
x = [{"a":1,"b":2,"c":3},{"a":3,"b":2,"c":4},{"a":2,"b":1,"c":4},{"a":1,"b":3,"c":1}]
您希望按a
的优先级排序,然后b
,然后c
,按逻辑顺序排序:
x = sorted(x, key = lambda x: x["c"])
x = sorted(x, key = lambda x: x["b"])
x = sorted(x, key = lambda x: x["a"])
在最后一种相同值的项目中(按b
或a
排序后),是最后一次排序的项目的顺序保证?我已经对它进行了测试,看起来似乎就是这样,但我希望看到这些经过验证可以让我放心。
答案 0 :(得分:4)
正如list
类型的文档所示:
sort()
方法保证稳定。如果它是一个稳定的排序 保证不改变比较元素的相对顺序 相等 - 这有助于多次传递排序(例如, 按部门排序,然后按工资等级排序。