如何识别嵌套字典中的最高值键? [复制]

Posted

技术标签:

【中文标题】如何识别嵌套字典中的最高值键? [复制]【英文标题】:how to identify highest value key in nested dictionary? [duplicate] 【发布时间】:2018-10-15 10:04:31 【问题描述】:

作为一个python新手,我有一本字典d:

d='a':'1':4,'2':6,'b':'1':5,'2':10

我需要为每个键 ('a','b') 找到最高值的子键,并将它们捆绑在一个新字典 newd 中,看起来像

newd='a':'2', 'b':'2'

实现这一目标的最佳方法是什么?

【问题讨论】:

如果两个键的值最大,比如'a': '1': 4, '2': 4,该怎么办?随便选一个? 【参考方案1】:

您可以通过max 使用字典推导:

d='a':'1':4,'2':6,'b':'1':5,'2':10
new_d = a:max(b, key=b.get) for a, b in d.items()

输出:

'a': '2', 'b': '2'

【讨论】:

【参考方案2】:
d = 'a': '1':4,'2':6,'b': '1':5,'2':10

newd = 
for key, value in d.items():
    max_value = max([i for i in value.values()])
    for k in value:
            if value[k] == max_value:
                    newd[key] = k

print(newd)
# prints ''a': '2', 'b': '2''

【讨论】:

看起来OP想要与最高值对应的键,而不是本身最高的键。 嗯好吧我误会了,我会编辑我的答案 现在应该没问题了。当有多个键对应于最高值时,我知道 op 想要什么。 这是个好问题。【参考方案3】:
new_dict = 
for k, v in d.items():
    new_dict[k] = max(v.values())

【讨论】:

以上是关于如何识别嵌套字典中的最高值键? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用连接的字符串键访问嵌套字典? [复制]

当事先不知道层次结构中的键位置时,如何访问嵌套的 Python 字典键值对?

如何获取 JavaScript 字典中的键集合? [复制]

Python - 嵌套字典中的最大值键,泛化

使用列表中的项目更改嵌套字典的字典中的值?

如何在嵌套字典中查找所有出现的键,同时跟踪外部字典键值?