Python 在嵌套字典中查找Max

Python 在嵌套字典中查找Max,python,dictionary,Python,Dictionary,在这种情况下,“全国”是最大的 下面的代码使附加到脚本更容易: d = { "local": { "count": 1, "health-beauty": { "count": 1, "tanning": {"count": 1} } }, "nationwide": {"count": 9.0}, "travel": {"count": 0} } 这适用于嵌

在这种情况下,
“全国”
是最大的

下面的代码使附加到脚本更容易:

d = {
    "local": {
        "count": 1,
        "health-beauty": {
            "count": 1,
            "tanning": {"count": 1}
        }
    },
    "nationwide": {"count": 9.0},
    "travel": {"count": 0}
}    

这适用于嵌套字典:

>>> max(d, key=lambda x: d[x]['count'])
'nationwide'

正在查看打印最大值(d,key=lambda x:x[1])您应该将local.tanning设置为最大值。。。因为没有一个答案会找到它……如果“晒黑”是10,你需要抓住它,你可能需要把字典弄平。试着这样做,你能举个例子吗?@sehe检查问题的顶部答案。它有一个例子。那是行不通的我不认为。。。local有一个密钥计数和多个条目,每个条目都有自己的计数…这不起作用。。如果你的内部字典是最大的(因为它甚至不考虑嵌套字典)改变<代码> d [ [本地] ] [ [计数] ] <代码> > <代码> 10 /代码>我敢打赌,它不会返回晒黑……@ JoranBeasley,我知道。只是每个计数(据我所知)都是嵌套字典的总和。如果
d['local']['tanning']['count']
10
d['local']['count']
也是
10
(或更多)。。。所以没必要check@JBernardo没错,我也是每个家长!
>>> max(d, key=lambda x: d[x]['count'])
'nationwide'
def find_max(d, name=None):
    return max((v, name) if k == "count" else find_max(v, k) for k, v in d.items())

>>> find_max(d)
(9.0, 'nationwide')