3
這是很容易實現正則雙排序:雙排序與反向
pairs = [(1, 2), (2, 1), (1, 3), (2, 4), (3, 1)]
sorted(pairs,key=lambda x: (x[0],x[1]))
# out: [(1, 2), (1, 3), (2, 1), (2, 4), (3, 1)]
我有興趣如何與以相反的順序爲第二個元素做到這一點。這可以通過首先對第一項進行分組,然後將排序的第二項添加到一起來實現。我已經使用itertools.groupby
和defaultdict
來實現這一點。儘管如此,它仍然比普通的雙重排序複雜得多,所以我想知道,是否有一個簡潔的方法可以用更簡潔的方式來完成。
double_sort(pairs)
# out: [(1, 3), (1, 2), (2, 4), (2, 1), (3, 1)]
PS!我知道如何做到這一點,numpy.argsort
,主要是想看到一個標準的庫方法。
你拉姆達什麼都不做。攜手'整理(雙)已經給出了和你第一次相同的結果。 –