我正在编写一个足球桌,其中有一个获得最高分数的功能。这些要点由不构成。胜利* 3 +没有。抽奖如果有两个相同的,那么抽奖最少的一个获胜。
目前我正在使用字典存储团队类属性,例如名称和总分。我知道我可以通过迭代键和值在python中使用max
函数找到最高值。
我想知道的是,如果我有一个格式名称为单独的字典,那么我应该如何返回获胜最少的字典:损失?
以速记形式找到得分最高的球队,如果有两支球队拥有相同的得分,则返回损失最少的球队。
def getWinner(classList):
teamPoints = {}
losses = {}
for item in classList:
teamPoints[item.getName()] = item.getPoints()
losses[item.getName()] = item.getLosses()
return max(teamPoints, key=teamPoints.get)
此代码目前获得最高分,但如果有两个具有相同分数但损失不同,则会正确。
答案 0 :(得分:1)
您可以使用Python的内置sorted
函数和自定义key
函数作为比较器。如果您只是获得第一个结果,那么只需选择列表的第一个元素。
def key(element):
return (element["name"] , - element["losses"])
winner = sorted(results, key=key)[0]
(假设"结果"是包含每个团队条目的词典的列表)