在不同的键上多次使用按字典列表排序 - 是否保证订单保存?

时间:2016-02-18 09:51:47

标签: python list sorting python-3.x dictionary

假设您有一个这样的词典列表:

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"])

在最后一种相同值的项目中(按ba排序后),是最后一次排序的项目的顺序保证?我已经对它进行了测试,看起来似乎就是这样,但我希望看到这些经过验证可以让我放心。

1 个答案:

答案 0 :(得分:4)

正如list类型的文档所示:

  

sort()方法保证稳定。如果它是一个稳定的排序   保证不改变比较元素的相对顺序   相等 - 这有助于多次传递排序(例如,   按部门排序,然后按工资等级排序。

相关问题