如何在Python 3中自定义我自己的比较函数

时间:2018-10-31 22:01:01

标签: python python-3.x compare

是否可以在Python 3中自定义比较功能?例如,有一个列表:python2。首先,基于整数(从大到小)对其进行排序,然后,如果整数相同,则根据字母以字典顺序对其进行排序。这完全是两个不同的顺序,第一个是相反的,而第二个则不是。所以我不能只使用'reverse = True'来处理它。

我知道Python 2中有cmp可以帮助我定义自己的比较函数。但是如何在Python 3中做到这一点?

任何帮助将不胜感激。谢谢

1 个答案:

答案 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']]