如何在字典中找到最常用的键,然后是最常用的值

时间:2017-10-07 16:39:25

标签: python

我有一个字典,字符串作为键,字符串作为值。首先,我想在我的词典中找到最常用的密钥。其次,我想在我的词典中找到最常见的值。

我从很长的文本中得到很多单词作为不同的键,然后是该键的值,该单词所属的词性属于该词。

但这是我的字典可能是什么样子的例子:

dicts = {"hello":"hey", "hello":"hi", "hey":"hi", "howdy":"hello", "yo":"hi", "hello":"howdy"}

所以,显然,我希望我的代码能够找到“你好”是最常用的密钥。并且“喜欢”是最常见的价值。

我试过这个以找到最常用的密钥:

from collections import Counter
c = Counter()
for d in dicts.values():
    c += Counter(d)

print(c.most_common())

然而,它找到了最常见的字母......如何让我的代码找到最常用的密钥,然后是最频繁的值?

谢谢!

2 个答案:

答案 0 :(得分:2)

没有"最频繁的关键"在字典中。在词典中,每个键必须是唯一的。至于值,这应该可以正常工作:

from collections import Counter
keys = Counter(dicts.values())
mode = keys.most_common(1)

或者如果你正在使用python 3.4及更高版本:

from statistics import mode
most_common = mode(dicts.values())

答案 1 :(得分:0)

首先:一个键在Python中只有一个值。如果要存储值列表,请使用“列表” 如果要获取所有值来计算频率,请使用my_dict.values()。它将返回字典中所有值的列表。 这个循环将计数并将其保存到另一个字典中:

frequency = {}
for value in my_dict.values() :
    if value in frequency :
        frequency[value] = frequency[value] + 1
    else :
        frequency[value] = 1