繁体   English   中英

在字典中搜索最大值,然后获取关联的密钥

[英]Searching dictionary for max value then grabbing associated key

我需要帮助来从字典中获取最大值。 我有一个{num:[state,value] ...}的字典,需要获取与最高值相关的所有内容。

#find max value in dictionary
td = {0: ['b',3], 1: ['b',6], 4: ['b',2], 3: ['b',5] }
#In this example td dict, I want to grab the key and state associated with the highest value, 6. I want to grab "1: ['b',6]"
print td
print td.keys()
print td.values()
maxval = max([v for k,[s,v] in td.iteritems()])
print maxval #correctly prints 6

只需更改您的max()理解以产生以值作为第一个元素的元组即可:

>>> max((v, k, s) for k, (s, v) in td.iteritems())
(6, 1, 'b')

因此,您的代码可能看起来像这样:

maxval, maxnum, maxstate = max((v, k, s) for k, (s, v) in td.iteritems())
>>> td = {0: ['b',3], 1: ['b',6], 4: ['b',2], 3: ['b',5] }
>>> max(td, key=lambda k:td[k][1])
1  ## This is the key with the maximum "value"

当然你也可以得到这样的价值

>>> td[max(td, key=lambda k:td[k][1])]
['b', 6]
print max(td.items(), key = lambda item: item[1][1])

key参数具有一个函数,如果使用该参数,它将产生使该函数最大化的值。

暂无
暂无

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

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