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
,主要是想看到一个标准的库方法。
你拉姆达什么都不做。携手'整理(双)已经给出了和你第一次相同的结果。 –