我有一个字典,其中键是字符串,值是整数。

stats = {'a': 1, 'b': 3000, 'c': 0}

如何获得具有最大值的键?在这种情况下,它是'b'。


有没有比使用带有反向键值元组的中间列表更好的方法?

inverse = [(value, key) for key, value in stats.items()]
print(max(inverse)[1])

当前回答

Counter = 0
for word in stats.keys():
    if stats[word]> counter:
        Counter = stats [word]
print Counter

其他回答

如何:

 max(zip(stats.keys(), stats.values()), key=lambda t : t[1])[0]
key, value = max(stats.iteritems(), key=lambda x:x[1])

如果你不关心价值(我会很惊讶,但是),你可以做:

key, _ = max(stats.iteritems(), key=lambda x:x[1])

我更喜欢元组解包,而不是表达式末尾的[0]下标。 我从来都不太喜欢lambda表达式的可读性,但我发现这个比operator.itemgetter(1)更好。

例子:

stats = {'a':1000, 'b':3000, 'c': 100}

如果你想用它的键找到Max值,也许下面的步骤很简单,不需要任何相关的函数。

max(stats, key=stats.get)

输出是具有Max值的键。

这是另一个:

stats = {'a':1000, 'b':3000, 'c': 100}
max(stats.iterkeys(), key=lambda k: stats[k])

函数键只是返回应该用于排序的值,max()立即返回所需的元素。

d = {'A': 4,'B':10}

min_v = min(zip(d.values(), d.keys()))
# min_v is (4,'A')

max_v = max(zip(d.values(), d.keys()))
# max_v is (10,'B')