首页 > 解决方案 > 在字典的字典中查找计数最高的元素

问题描述

我有字典 myDict 的字典:

myDict = { 'cow': {'A':2, 'B':5, 'C':3},
           'cat': {'A':7, 'B':1, 'C':6},
           'dog': {'A':1, 'B':4, 'C':3},
           'bird': {'A':5, 'B':7, 'C':9}
         }

在这种情况下,我想找到每个动物的最高计数元素,即输出应该是:

myNewTable = {'cow':'B', 'cat':'A', 'dog':'B', 'bird':'C'}

我尝试使用以下代码来实现这一点:

 myNewTable = max(x.items(), key=operator.itemgetter(1))[0] for x in myDict

但出现以下错误:

File "<ipython-input-11-3bcb909a6476>", line 28
    myNewTable = max(x.items(), key=operator.itemgetter(1))[0] for x in myDict
                                                                ^
SyntaxError: invalid syntax

我在这里做错了什么?我该如何解决这个问题?

标签: pythondictionary

解决方案


好吧,您的语法是错误的,但您的想法是正确的。一个简洁的解决方案,使用maxanddict.get可以通过迭代来构建myDict

>>> {k : max(v, key=v.get) for k, v in myDict.items()}
{'bird': 'C', 'cat': 'A', 'cow': 'B', 'dog': 'B'}

推荐阅读