парсинг значения для того же ключа в словаре python - PullRequest
1 голос
/ 16 апреля 2020
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 в общем, как я могу это сделать, может кто-нибудь помочь мне с этим

1 Ответ

1 голос
/ 16 апреля 2020

IIU C, Использование:

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
...