Python,使用比较函数来查找最佳对象

Ome*_*mer 1 python comparison list

我有一个函数作为参数2对象:ab 函数检查(使用一个非常长的算法)这些对象中的哪一个更好.

如果a更好,则返回-1,如果b更好则返回1,如果绑定则返回0

我的问题是:

我在列表中有21个这样的对象.

我需要找出,使用上面的函数(函数不能更改,唯一的方法是比较2个对象,这是一个非常复杂和长的算法),这21个对象中的哪一个是最好的.

我试过几个小时思考如何有效地做到这一点而没有做太多次相同的比较,如何编写一个算法,找出哪一个是最好的(如果其中两个是并列的,它们都是最好的,它不会不管怎么样,虽然我认为甚至不可能出现平局,但我无法想出任何好的东西.

函数的名称是handCompare(a, b) 在名单中找到的对象Combos,len(combos)是21我需要一个算法,它将找到组合列表中的最佳项目

感谢阅读,我希望你能帮忙:)

use*_*424 7

如果你改变hand_compare()为返回,1如果a更好,-1如果b 更好,这将有效.

import functools
best = max(combos, key=functools.cmp_to_key(hand_compare))
Run Code Online (Sandbox Code Playgroud)