Python 字典值中的最大值
如何在字典中检索值列表中包含最高数字的键Python 字典值中的最大值,python,python-2.7,list,dictionary,max,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,
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,因此应返回该值您可以对转换为
列表
(python 3)的字典键应用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]}
print(max(list(l.keys()),key=lambda k:max(l[k])))
结果:5
编辑:可以,但在计算最大值时不必要地查询dict。最好获得键+值对,并处理元组的列表。最后,以第一个元素为例。应稍微快一点(无键查找):
您可以在转换为列表
(python 3)的字典键上应用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]}
print(max(list(l.keys()),key=lambda k:max(l[k])))
结果:5
编辑:可以,但在计算最大值时不必要地查询dict。最好获得键+值对,并处理元组的列表。最后,以第一个元素为例。应稍微快一点(无键查找):
您可以尝试以下方法:
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]
}
final_val = sorted(l.items(), key=lambda x: max(x[-1]))[-1][0]
print(final_val)
输出:
5
您可以尝试以下方法:
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]
}
final_val = sorted(l.items(), key=lambda x: max(x[-1]))[-1][0]
print(final_val)
输出:
5
问题中似乎缺少一些代码。请将您的问题包括在内。您的问题中似乎缺少一些代码。请把你的问题包括在内