编辑: 我修改了以前编写的代码,因为在字典列表中键的名称是相同的。
我目前必须使用具有以下形式的嵌套词典:
r = {'keyX': [{'keyAa': valueAa,
'keyAb': valueAb,
'keyAc': {'keyAca': {'keyAcaa': valueAcaa
'keyAcab': valueAcab
'keyAcac': valueAcac
...}}
'keyAd': valueAd
'keyAe': valueAe
}
{'keyAa': valueBa,
'keyAb': valueBb,
'keyAc': {'keyAca': {'keyAcaa': valueBcaa
'keyAcab': valueBcab
'keyAcac': valueBcac
...}}
'keyAd': valueBd
'keyAe': valueBe
}
...
]
'keyY': {'key1a': value1a
'key1b': value1b
...}}
我想找到keyAcac的最大值。(不同字典的密钥名称相同) 为了获得最大值,我尝试在max()函数之前使用int():
max_volume = max(int(r['keyX']['keyAc']['keyAca']['KeyAcac'])))
或:
max_volume = max(int(r['keyX']['keyAc']['keyAca']['KeyAcac']) for a in a.values())
要通过各种方式实现这一点,但我总是会遇到“TypeError:列表索引必须是整数或片,而不是str”错误,我无法解决这个问题。你能帮我吗
一旦找到这个最大值,我还想返回所有的字典,其中的键和值都是相同的主字母。(示例:如果最大值为valueBcac,我希望将keyBa、keyBb、keyBc……及其所有值作为输出)。这可能吗
是的,您可以使用递归生成器函数遍历嵌套结构,生成“路径”。您最初的示例包含列表和dict,这也考虑了任何可能的集合(无论如何,在某种程度上)
之后,您可以简单地将内置的
max()
函数与该迭代器一起使用输出是例如
相关问题 更多 >
编程相关推荐