from itertools import groupby
from operator import itemgetter
li = [('x', 'y'), ('s', 'e'), ('s, 'a'), ('x', 'z')]
[p for k, g in groupby(sorted(li, reverse=True), itemgetter(0)) for p in reversed(list(g))]
# [('x', 'y'), ('x', 'z'), ('s', 'a'), ('s', 'e')]
这里有一个
itertools.groupby
解决方案:你完全可以用一句话做到:
在Sorting Mini-HOW TO(“中对这个问题进行两次排序要按降序和升序对学生数据进行排序,请先进行年龄排序,然后使用grade“”再次排序)。在
只有一个
^{pr2}$sorted
和key
来做这件事是愚蠢的选择:Python2解决方案包含一个}而不是{}:
sorted
和{是的,您可以依靠分拣的稳定性:
相关问题 更多 >
编程相关推荐