Skip to main content
 首页 » 编程设计

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

2025年05月04日12zhenyulu

我有一个函数将 2 个对象作为参数:a 和 b 该函数检查(使用很长的算法)这些对象中哪个更好。

如果 a 更好则返回 -1,如果 b 更好则返回 1,如果他们打平则返回 0

我的问题是:

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

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

我花了好几个小时思考如何在不重复进行相同比较的情况下有效地进行比较,如何编写一个算法来找出哪个是最好的(如果它们中的两个是并列的并且它们都是最好的) ,拿哪个并不重要,尽管我认为平局是不可能发生的),而且我想不出任何好办法。

函数的名称是handCompare(a, b) 这些对象位于名为 Combos 的列表中,len(combos) 为 21 我需要一个算法来找出组合列表中的最佳项目

感谢阅读,希望对您有所帮助:)

请您参考如下方法:

如果您将 hand_compare() 更改为返回 1(如果 a 更好)而返回 -1(如果 b 更好),这将起作用。

import functools 
best = max(combos, key=functools.cmp_to_key(hand_compare))