python如何对2个值进行排序

时间:2011-04-14 18:32:53

标签: python sorting

如果我有一个清单

listOfFiles = [<str>,<intA>,<intB>]

如何先通过intA然后通过intB?

对此列表进行排序

最终结果看起来像

<str>,1,1
<str>,1,2
<str>,1,3
<str>,2,1
<str>,2,2
etc

3 个答案:

答案 0 :(得分:10)

使用复合键(或者更确切地说,使用序列作为键)。

listOfFiles.sort(key=operator.itemgetter(1, 2))

答案 1 :(得分:0)

Python列表排序已在适当的位置完成,并保证在2.4之后保持稳定(我相信,它可能已经是2.5)。这意味着你可以这样排序,并且应该得到你想要的结果:

listOfFiles.sort(key = lambda x: x[2])

listOfFiles.sort(key = lambda x: x[1])

我认为你实际上有一个列表列表或一个元组列表。如果没有,请提供更完整的数据结构示例。

答案 2 :(得分:0)

这也有效:

listOfFiles.sort(key=lambda x: (x[1], x[2]))