如何识别嵌套字典中的最高值键? [复制]
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())
【讨论】:
以上是关于如何识别嵌套字典中的最高值键? [复制]的主要内容,如果未能解决你的问题,请参考以下文章