我用这个
ThreadList.append([''.join(map(str,[Thread])), date, rrf[5]])
SendThreadList = ''
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)
排序显示只有第二个排序,如何用键中的两个包进行排序??
答案 0 :(得分:6)
如果你想按Entry [1]排序,然后输入[2],那么你将lambda作为元组返回......:
ThreadList = sorted(ThreadList, key=lambda Entry: (Entry[1], Entry[2]), reverse=True)
有时更具可读性(并且可能稍微快一些)的是使用operator
模块并使用key=operator.itemgetter(1, 2)
答案 1 :(得分:1)
虽然这样做是错误的,但如果您交换订单,您的示例将会起作用:
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)
Python排序是稳定的 - 如果两个条目与[1]
相关联,它们将保持第一种排序。