在字典的字典中查找最高计数元素

Eda*_*ame 3 python dictionary

我有一本字典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}
         }
Run Code Online (Sandbox Code Playgroud)

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

myNewTable = {'cow':'B', 'cat':'A', 'dog':'B', 'bird':'C'}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码实现此目的:

 myNewTable = max(x.items(), key=operator.itemgetter(1))[0] for x in myDict
Run Code Online (Sandbox Code Playgroud)

但得到以下错误:

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

我在这做错了什么?我怎么能解决这个问题呢?

cs9*_*s95 5

好吧,你的语法错了,但你有正确的想法.一个漂亮而简洁的解决方案,使用maxdict.get可以通过迭代来构建myDict:

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