如何检索词典中包含值列表中编号最大的键?
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,因此应返回
答案 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}}