使用条件语句

时间:2016-01-27 15:50:26

标签: python class dictionary

我正在编写一个足球桌,其中有一个获得最高分数的功能。这些要点由不构成。胜利* 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)

此代码目前获得最高分,但如果有两个具有相同分数但损失不同,则会正确。

1 个答案:

答案 0 :(得分:1)

您可以使用Python的内置sorted函数和自定义key函数作为比较器。如果您只是获得第一个结果,那么只需选择列表的第一个元素。

def key(element):
   return (element["name"] , - element["losses"])

winner = sorted(results, key=key)[0]

(假设"结果"是包含每个团队条目的词典的列表)