我有一个包含整数键和列表值的字典。
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?
答案 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
内置函数使用。