如何通过比较值来查找字典中的最大值?

2024-05-16 01:36:04 发布

您现在位置:Python中文网/ 问答频道 /正文

有一种方法可以根据 this问题。不过,我想换一种方式。在

假设我们有一本字典D,说:

   D = {'a' : 1 , 'q' : 2,  'b' : 3, 'c': 2}

我想通过循环键的值来找到字典的最大值,每次比较两个键的值,然后“记住”表示局部变量中最高值的键。最后,我应该在D中找到键和它的最大值。在这种情况下,我们应该得到这样的结果:

^{pr2}$

最大键现在是“b”,值为3。在

但是如何比较for循环中键的值呢?我该怎么做:

for k,v in D.iteritems() : 
    if (dictitem) > (dictitem + 1) : 
        remember = dictitem 
    else : 
        remember = dictitem + 1 

但现在有什么东西真的有用吗?在


Tags: 方法inforif字典方式情况this
3条回答
>>> D = {'a' : 1 , 'q' : 2,  'b' : 3, 'c': 2}
>>> max(D, key=D.get)
'b'

@henices的回答很好,你应该用它。但要给您一个关于如何实现max函数的一般性说明:

D = {'a' : 1 , 'q' : 2,  'b' : 3, 'c': 2}
my_max_val = 0
for k,v in D.items():
    if v > my_max_val:
        my_max_val=v
        my_max_key=k


>>> my_max_val
3
>>> my_max_key
'b'

我想这可能是另一个接近。你可以使用运算符.itemgetter为此:

import operator
mydict = {'a' : 1 , 'q' : 2,  'b' : 3, 'c': 2}
max(mydict.iteritems(), key=operator.itemgetter(1))[0]

而不是在内存使用中建立一个新的列表stats.iteritems(). max()函数的key参数是一个计算键的函数,该键用于确定如何排名物品。这个适用于两个最大值为一个的情况。比如说

^{2}$

本例中的输出为“d”。因为d的值之一是max

相关问题 更多 >