对具有条件语句的字典使用max函数

2024-09-25 06:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个足球表,其中有一个函数可以获得最高的分数。这些分数由赢的次数*3+平局次数组成。如果有两个相同的,平局最少的那一个获胜。你知道吗

目前我正在使用字典来存储teams类的属性,比如名称和总分。我知道我可以通过在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)

此代码当前获得最高分数,但如果有两个分数相同但损失不同,则此代码是正确的。你知道吗


Tags: 函数代码字典item次数分数max损失
1条回答
网友
1楼 · 发布于 2024-09-25 06:37:24

可以将Python的内置函数sorted与自定义的key函数一起用作比较器。如果你只是看到了第一个结果,那么就选择列表中的第一个元素。你知道吗

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

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

(假设“results”是一个包含每个团队条目的词典列表)

相关问题 更多 >