在Python中不使用functools.cmp_to_key(func)的比较
我想对一个列表进行排序,但在排序之前需要先对里面的值进行一些复杂的比较。比如说,
sorted_result = sorted(unsorted_list, key=functools.cmp_to_key(complex_compare), reverse=True)
这里的complex_compare就是我现在用来进行比较的方法。
不过,我希望能在functools.cmp_to_key这个工具不参与的情况下完成这个排序。因为我查阅了Python的文档,发现上面提到:
这个函数主要是用作从Python 2转换过来的程序的过渡工具,Python 2支持使用比较函数。
我查了一下,发现没有简单的方法可以做到类似的事情,而且这种方法也不是“过渡性”的(这让我有点惊讶,不知道我是不是漏掉了什么)。那么,有什么好的方法可以实现我想要的呢?
1 个回答
1
只需要提供一个关键函数,这个函数会为每个元素返回一个值。通过比较这些值,就能得到正确的顺序。通常,你自己写的这个函数会比Python自动生成的比较函数更好。