1

私はこれを使用しています

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)

並べ替えは2番目の並べ替えのみを表示します。キーの2つのエントリで並べ替える方法は??

4

2 に答える 2

6

Entry [1]、次にEntry [2]で並べ替える場合は、ラムダに両方をタプルとして返すようにします...:

ThreadList = sorted(ThreadList, key=lambda Entry: (Entry[1], Entry[2]), reverse=True)

時々より読みやすい(そして潜在的にわずかに速い)のは、operatorモジュールを利用して使用することですkey=operator.itemgetter(1, 2)

于 2013-01-06T21:09:05.177 に答える
1

それを行うのは間違った方法ですが、順序を入れ替えると、例は機能します。

ThreadList = sorted(ThreadList, key=lambda Entry: Entry[2], reverse=True)
ThreadList = sorted(ThreadList, key=lambda Entry: Entry[1], reverse=True)

Pythonの並べ替えは安定しています。2つのエントリが結合している場合[1]、最初の並べ替えからの順序が維持されます。

于 2013-01-06T21:20:28.657 に答える