是否可以在Python 3中自定义比较功能?例如,有一个列表:python2
。首先,基于整数(从大到小)对其进行排序,然后,如果整数相同,则根据字母以字典顺序对其进行排序。这完全是两个不同的顺序,第一个是相反的,而第二个则不是。所以我不能只使用'reverse = True'来处理它。
我知道Python 2中有cmp可以帮助我定义自己的比较函数。但是如何在Python 3中做到这一点?
任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
您可以使用键函数返回要排序的项目的元组。取反数值项:
l = [[1, 'a'], [1, 'b'], [2, 'b'], [2, 'a'], [3, 'a']]
print(sorted(l, key=lambda t: (-t[0], t[1])))
这将输出:
[[3, 'a'], [2, 'a'], [2, 'b'], [1, 'a'], [1, 'b']]