在字典中查找列表值的最大总和

时间:2016-06-26 15:14:16

标签: python dictionary

我需要帮助才能找到总得分最高的学生。

s1= {'A': [100, 95, 100], 'B': [100, 100, 100], 'C': [95, 95, 80], 'D': [100, 100, 80]}
def wrtd2():
  for k, v in s1.iteritems():
     total = 0
     for i in v:
      total = total + i
     print total

wrtd2()

但它正在打印所有学生的总数。

2 个答案:

答案 0 :(得分:0)

尝试将max与自定义键功能一起使用:

def wrtd2(s):
    return max(list(s.items()), key=lambda x: sum(x[1]))[0]

s1 = {'A': [100, 95, 100], 'B': [100, 100, 100], 'C': [95, 95, 80], 'D': [100, 100, 80]}
print(wrtd2(s1))

这将打印

B

答案 1 :(得分:0)

使用maxsum

,这也是一种方法
s1= {'A': [100, 95, 100], 'B': [100, 100, 100], 'C': [95, 95, 80], 'D': [100, 100, 80]}

print(max([(sum(score), student) for (student, score) in s1.items()])[1])

输出:

B