繁体   English   中英

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

[英]Grabbing key of dictionary in dictionary with highest value

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

mydict = {'a' : {'c' : 1}, 'b' : {'c' : 2}}

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

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

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

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

max(mydict, key=lambda k: mydict[k]['c'])

或使用

max(mydict, key=lambda k: mydict[k].get('c', float('-inf')))

如果不是所有嵌套字典都有'c'键。 float('-inf')返回值确保不会将这些键选为最大值。

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

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

max()函数支持可以传递函数对象(如lambda)的key参数,此函数将接收传递给max的list / iterable的每个值,并应返回计算max的值。

示例 -

>>> mydict = {'a' : {'c' : 1}, 'b' : {'c' : 2}}
>>> max(mydict, key=lambda x: mydict[x]['c'])
'b'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM