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 回答

四季花海
TA贡献1811条经验 获得超5个赞
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
添加回答
举报
0/150
提交
取消