如果我有一个清单
listOfFiles = [<str>,<intA>,<intB>]
如何先通过intA然后通过intB?
对此列表进行排序最终结果看起来像
<str>,1,1
<str>,1,2
<str>,1,3
<str>,2,1
<str>,2,2
etc
答案 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]))