在对可迭代进行排序时,Python如何打破平局

时间:2014-11-08 15:54:28

标签: python sorting python-2.7

我想知道Python如何根据某种指定的键来决定两个项目之间的顺序。例如,给定:l = [[1, 2, 3], [1, 2], [1], [2, 3, 4], [1, 2, 4, 5]],Python如何在此类中订购[1, 2, 3][2, 3, 4]

sorted(l, key=lambda i: len(i), reverse=True)

它是否保持领带中项目之间的原始(相对)顺序?或者它是随机订购的?

2 个答案:

答案 0 :(得分:2)

来自docs

  

内置的sorted()函数保证稳定。如果排序保证不更改比较相等的元素的相对顺序,则排序是稳定的 - 这有助于在多个过程中进行排序(例如,按部门排序,然后按工资等级排序)。

答案 1 :(得分:2)

同样在wiki

  

从Python 2.2开始,保证排序稳定。那   意味着当多个记录具有相同的密钥时,它们的原始密钥   订单保留。