字典值中的最大数字

时间:2017-09-28 13:26:22

标签: python python-2.7 list dictionary max

如何检索词典中包含值列表中编号最大的键?

l = {
 '1': [1, 2, 3, 4, 5, 6, 8, 9, 10, 11], 
 '3': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
 '5': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 21, 17, 18, 19],
 '4': [4, 1, 2, 3, 5, 6],
 '7': [1, 2, 8, 3, 4, 5, 6, 7]
}

在此示例中,键5包含值19,因此应返回

2 个答案:

答案 0 :(得分:3)

你可以在转换为max(python 3)的字典键上应用list,使用一个返回list的最大值的键函数

l = {'1': [1, 2, 3, 4, 5, 6, 8, 9, 10, 11],
 '3': [1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
 '5': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 21, 17, 18, 19],
 '4': [4, 1, 2, 3, 5, 6],
 '7': [1, 2, 8, 3, 4, 5, 6, 7]}

print(max(list(l.keys()),key=lambda k:max(l[k])))

结果:5

编辑:这有效,但在计算最大值时不必要地查询字典。最好获取键+值对并在tuple列表中工作。最后,采取第一个元素。应该稍快一些(没有键查找):

max(list(l.items()),key=lambda v:v[1][-1])[0]

答案 1 :(得分:0)

你可以试试这个:

5

输出:

{{1}}