[英]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
和作为比较器键的多因子,它首先value
( pair[1]
)然后取key
( pair[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.