Python,使用比较函数查找最佳对象
我有一个函数,它把两个对象作为参数:a和b 该函数使用很长的算法检查这些对象中的哪一个更好Python,使用比较函数查找最佳对象,python,list,comparison,Python,List,Comparison,我有一个函数,它把两个对象作为参数:a和b 该函数使用很长的算法检查这些对象中的哪一个更好 import functools best = max(combos, key=functools.cmp_to_key(hand_compare)) 如果a更好,则返回-1;如果b更好,则返回1;如果他们平手,则返回0 我的问题是: 列表中有21个这样的对象 我需要找出,使用函数上面的函数是不可能的 改变了,唯一的方法就是比较两个物体,这是一个非常复杂的过程 长算法,这21个对象中哪一个是最好的 我花
import functools
best = max(combos, key=functools.cmp_to_key(hand_compare))
如果a更好,则返回-1;如果b更好,则返回1;如果他们平手,则返回0
我的问题是:
列表中有21个这样的对象
我需要找出,使用函数上面的函数是不可能的
改变了,唯一的方法就是比较两个物体,这是一个非常复杂的过程
长算法,这21个对象中哪一个是最好的
我花了好几个小时思考如何高效地完成这项工作,而不必做太多次相同的比较,如何编写一个算法,找出哪一个是最好的,如果两个并列,而且它们都是最好的,那么选择哪一个并不重要,尽管我认为并列的情况甚至不可能发生,我想不出什么好主意
函数名为handcomarea,b
这些对象位于名为Combos的列表中,lencombos为21
我需要一个算法,将找出组合列表中的最佳项目
感谢您的阅读,我希望您能提供帮助:如果您将hand\u与a比较,则返回1,如果b比较好,则返回-1
import functools
best = max(combos, key=functools.cmp_to_key(hand_compare))
如果将hand_compare更改为如果a更好,则返回1;如果b更好,则返回-1,则此操作将有效
import functools
best = max(combos, key=functools.cmp_to_key(hand_compare))
最简单的方法是:创建每个对象的一个对象,比较函数为_cmp_uuuuuuuupython2.x或定义_lt_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。将每个存储在名为list\的列表中。使用minlist查找值最小的一个
如果可行的话,一个可能会有帮助的优化:如果你能想出一种方法将你的对象映射到可能大的整数,这样x的整数
如果可行的话,一个可能会有帮助的优化:如果你能想出一种方法将你的对象映射到可能大的整数,这样x的整数