如何在嵌套字典中获取具有最大数字的密钥? (Python)

时间:2018-10-26 21:52:48

标签: python

比方说,我有一个嵌套的字典,看起来像:

{ 'word1':
    {'VERB': 129}
    {'NOUN': 151}
    {'DET': 26426}
...
}

我想从嵌套字典中获取DET,因为它的频率最高。 我尝试通过迭代dict[word1]来做到这一点,但似乎效率很低。有简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

*编辑了所有内容,并给予了更多关注。希望对您有所帮助。

list_of_keys = list(dictionary.keys())
list_of_values = list(dictionary.values())
max_value = max(list_of_values)
the_key = list_of_keys[list_of_values.index(max_value)]

答案 1 :(得分:0)

您可以尝试熊猫:

import pandas as pd
dictionary = {'word1': {'VERB': 129, 'NOUN': 151, 'DET': 26426}, 'word2': {'VERB': 129, 'NOUN': 151, 'DET': 26476}}
df = pd.DataFrame(dictionary)
#       word1  word2
# DET   26426  26476
# NOUN    151    151
# VERB    129    129
df.apply(lambda row: row.max(), axis=1).idxmax()
# 'DET'

或者,如果您想要更简洁的内容:

pd.DataFrame(dictionary).apply(lambda row: row.max(), axis=1).idxmax()
# 'DET'

希望这会有所帮助!