首页 > 解决方案 > 解析python字典中相同键的值

问题描述

alice_ratings = {"alonzo": 1, "bob": 3, "turing" : 2}
bob_ratings = {"alice": 1, "alonzo": 2, "turing": 3}
alonzo_ratings = {"alice": 3, "bob": 2, "turing": 1}
turing_ratings = {"alice": 2, "alonzo": 1, "bob": 3}

给了我相应的学生偏好字典,我想写一个函数,返回一个平均分最低的学生,我该怎么做。示例:alonzo 的总体评分为 4,我该怎么做才能有人帮我解决这个问题

标签: pythondictionary

解决方案


IIUC,用途:

def lowest(*args):
    ratings = {}
    for d in args:
        for k, v in d.items():
            if k in ratings:
                ratings[k] += v
            else:
                ratings[k] = v
    return min(ratings, key=lambda k: ratings[k])

或者,

from collections import defaultdict

def lowest(*args):
    ratings = defaultdict(int)
    for d in args:
        for k, v in d.items():
            ratings[k] += v

    return min(ratings, key=lambda k: ratings[k])

调用函数:

print(lowest(alice_ratings, bob_ratings, alonzo_ratings, turing_ratings))

这打印:

alonzo

推荐阅读