【发布时间】:2020-09-14 10:46:05
【问题描述】:
编辑: 我修改了之前写的代码,因为字典列表中的键名是一样的。
我目前必须使用具有这种形式的嵌套字典:
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、...,以及它们的所有值)。这可能吗?
【问题讨论】:
-
请用您尝试过的代码更新您的问题。
-
我编辑了一个我之前写错的重大更改:键名(例如,keyAcac 在不同的字典中是相同的)
标签: python python-3.x list dictionary nested