python - 解析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,我该怎么做才能有人帮我解决这个问题
解决方案
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
推荐阅读
- php - 如何使用 Doctrine 组合 Symfony 4 中唯一的两列?
- firebase - 在 null 上调用了方法“add”
- js-xlsx - 在使用带有 XLSX.utils.json_to_sheet 的标头选项时,标头不会覆盖
- php - 如何避免插入重复记录
- vba - 在 VB 中简化多个类似的“私人潜艇”
- javascript - Chrome 任务管理器中的内存占用、Javascript 内存和实时内存有什么区别?
- java - 如何停止textview的褪色动画?
- python - Django 是 MVC 还是 MVT 框架?
- jquery - Ajax 调用后关闭引导模式
- azure - Azure 函数 V2 可以缓冲日志调用吗?