python - 字典,使用 .get 添加多个值

标签 python dictionary

我需要一些建议。我想创建一个字典,包含足球队、他们的积分数和他们参加的比赛数。 analyzed 中的每个列表都包含一场比赛,得分最高的球队获胜并获得 3 分。每支球队的得分是使用第 4 行中的 calculateScores 函数计算的。但是,我还想跟踪每支球队打了多少场比赛。 我可以用 .get 语句做到这一点吗?我的函数返回 {'Steinkjer': 0, 'Byåsen': 6, 'Kvik Halden': 3},但我希望它返回 {'Steinkjer': [0, 2], 'Byåsen': [6, 3], 'Kvik Halden': [3, 1]}。提前致谢!

analyzed = [['Steinkjer', 'Byåsen', 3, 5], ['Byåsen', 'Steinkjer', 2, 1], ['Byåsen', 'Kvik Halden', 2, 10]]   

def sumTeamValues(analyzed):
    D = {}
    for match in analyzed:
       scores = calculateScores(match[-2],match[-1])
       D[match[0]] = D.get(match[0],0) + scores[0]
       D[match[1]] = D.get(match[1],0) + scores[1]
    return D

最佳答案

我看不出只有一个 get 语句可以做到这一点。只需将数组存储在字典中:

analyzed = [['Steinkjer', 'Byåsen', 3, 5], ['Byåsen', 'Steinkjer', 2, 1], ['Byåsen', 'Kvik Halden', 2, 10]]   

def sumTeamValues(analyzed):
    D = {}
    for match in analyzed:
       scores = calculateScores(match[-2],match[-1])
       D[match[0]] = [D.get(match[0],[0, 0])[0] + scores[0], D.get(match[0],[0, 0])[1] + 1]
       D[match[1]] = [D.get(match[1],[0, 0])[0] + scores[1], D.get(match[1],[0, 0])[1] + 1]
    return D

关于python - 字典,使用 .get 添加多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53500750/

相关文章:

python - 使用 ODBC 时出现无法读取数据库错误

python - 从给定范围内的张量中删除值

python - 从 dict 构造一个嵌套的 defaultdict?

java - 遍历时将结果集值映射到另一个值

ios - 我可以自定义 UIReferenceLibraryViewController 的外观和 "Done"按钮吗?

python - 查找是否已经在python中加载了一个类?

python - 如何在 sunOS 启动时运行我的 python 脚本

python - 如何在不使用 Pandas 的情况下更改列的位置

python - 将两个具有相同键但不同字典作为值的嵌套字典组合在一起

python - 将 dict 的元组键转换为新的 dict