以最高价值在字典中抓取字典的关键字

Tho*_*s W 4 python dictionary max

所以我有以下字典(Python 3):

mydict = {'a' : {'c' : 1}, 'b' : {'c' : 2}}
Run Code Online (Sandbox Code Playgroud)

如您所见a并且b是类似的词典,它们具有相同的键,但是这些键的值并不总是相同的.

我想要这个词典:键('a''b')哪个值(=词典)包含与其他词典相比具有最高值的键.

我一直在看max功能,但到目前为止还没有运气.

Mar*_*ers 5

要获取具有特定键('c')的最高值的嵌套字典的密钥,请使用:

max(mydict, key=lambda k: mydict[k]['c'])
Run Code Online (Sandbox Code Playgroud)

或使用

max(mydict, key=lambda k: mydict[k].get('c', float('-inf')))
Run Code Online (Sandbox Code Playgroud)

如果不是所有嵌套字典都有'c'密钥.该float('-inf')返回值可以确保这些密钥不选为最大.

key为每个键调用该函数mydict,其返回值用于选择哪一个是最大值:

>>> mydict = {'a' : {'c' : 1}, 'b' : {'c' : 2}}
>>> max(mydict, key=lambda k: mydict[k]['c'])
'b'
Run Code Online (Sandbox Code Playgroud)