Python-在字典中获取具有最大值的键?

发布于 2021-02-02 23:22:53

我有一个dictionary:键是字符串,值是整数。

例:

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

我想'b'作为一个答案,因为它是具有更高价值的关键。

我使用带有反向键值元组的中间列表进行了以下操作:

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

那是一种更好(或更优雅)的方法吗?

关注者
0
被浏览
124
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    您可以使用operator.itemgetter

    import operator
    stats = {'a':1000, 'b':3000, 'c': 100}
    max(stats.iteritems(), key=operator.itemgetter(1))[0]
    

    而不是在内存使用中构建新列表stats.iteritems()。该函数的key参数max()是一个计算键的函数,该键用于确定如何对项目进行排名。

    请注意,如果要使用另一个键值对“ d”:3000,则此方法将仅返回两个值中的一个,即使它们都具有最大值。

    >>> import operator
    >>> stats = {'a':1000, 'b':3000, 'c': 100, 'd':3000}
    >>> max(stats.iteritems(), key=operator.itemgetter(1))[0]
    'b' 
    

    如果使用Python3:

    >>> max(stats.items(), key=operator.itemgetter(1))[0]
    'b'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看