繁体   English   中英

如何获取字典中具有最高值的键

[英]how to get the key with the highest value in a dictionary

我有一个像这样的字典,其中包含作为键的随机数和作为值的主要除数。

d= {123: 2, 43: 1, 54: 2, 12: 2, 76: 2, 84: 3, 98: 2, 678: 3, 543: 2, 231: 3}

我想获得价值最高的数字。 如果多个键具有相同的值,则应打印出最大的键。 例如,这里的数字 84,678 和 231 都具有最高值,我希望打印出 678 而不是 84 或 231。

您可以使用max和作为比较器键的多因子,它首先valuepair[1] )然后取keypair[0] )。 最后的[0]是只检索键,而不是对

values = d = {123: 2, 43: 1, 54: 2, 12: 2, 76: 2, 84: 3, 98: 2, 678: 3, 543: 2, 231: 3}
max_key = max(values.items(), key=lambda pair: (pair[1], pair[0]))[0]
print(max_key) # 678

更高性能的代码( ~30%

from operator import itemgetter 
max_key = max(values.items(), key=itemgetter(1,0))[0]
d = {123: 2, 43: 1, 54: 2, 12: 2, 76: 2, 84: 3, 98: 2, 678: 3, 543: 2, 231: 3} #sort values in ascending order d = dict(sorted(d.items(), key=lambda item: item[1])) #sort keys in ascending order d = dict(sorted(d.items())) #convert it to list of keys and get the last one(max in keys and values) print(list(d)[-1]) # 678

暂无
暂无

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

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