首页 > 解决方案 > 以元组中的固定元素为键,查找字典中的最大值

问题描述

我在这个论坛上搜索了高低,但我没有找到任何解决这个特定问题的方法。假设我有一本看起来像这样的字典:

d = {}

d['a', 0] = 0.12
d['a', 1] = 0.23
d['a', 2] = 0.53
d['b', 4] = 0.23
d['b', 5] = 0.40
d['b', 6] = 0.39

如何找到与固定第一个元素的最大值对应的键?例如,如果我想找到给我一个最大值的元组的第二个元素 fixed 'b',我应该怎么做?(在这种情况下,它应该返回 5,因为 0.40 是最大值)。

我试过max(d, key=d.get)[1]了,但这给了我所有值的最大值的关键,所以 2. 有什么想法吗?

标签: pythondictionary

解决方案


如果您想根据字典中键中的值进行排序

def func(d,key):
    new_dic = {}
    for k,v in d.items():       
        if key in k :
            new_dic.update({k:v})
    return max(new_dic, key=lambda x:new_dic[x])

d = {}

d['a', 0] = 0.12
d['a', 1] = 0.23
d['a', 2] = 0.53
d['b', 4] = 0.23
d['b', 5] = 0.40
d['b', 6] = 0.39



print(func(d, 'b'))
# output ('b', 5) 

否则,如果您想要整体结果,请使用

max(d,key=lambda x:d[x])


推荐阅读