获取列表字典中的最大和列表的关键字

时间:2017-03-23 00:48:25

标签: python numpy dictionary

我有一个包含整数键和列表值的字典。

BoundValue

我想要

dict = {1: [0.1, 0.4, 0.05, 0.25], 3: [1, 8, 0.2, 3], 29: [2, 0, 1, 7]}

我试过了

largest_k = 3 # as its list sums to 12.2

我得到了

for n in dict.keys():
    d[n] = sum(dict[n])
largest_k = max(d, key=d.get)

按预期但很麻烦(并创建一个新词典)。

如何在不使用新词典或修改原始词典的情况下找到largest_k?

2 个答案:

答案 0 :(得分:2)

试试这个:

>>> my_dict = {1: [0.1, 0.4, 0.05, 0.25], 3: [1, 8, 0.2, 3], 29: [2, 0, 1, 7]}
>>> max(my_dict.items(), key=lambda x: sum(x[1]))
(3, [1, 8, 0.20000000000000001, 3])

答案 1 :(得分:2)

使用更详细的排序键,然后尝试使用max函数(因为您只想要最大的一个):

>>> dct = {1: [0.1, 0.4, 0.05, 0.25], 3: [1, 8, 0.2, 3], 29: [2, 0, 1, 7]}
>>> max(dct.items(), key=lambda x: sum(x[1]))[0]
3

并且不要使用dict作为名称,因为它已被dict内置函数使用。