我有一个字典,字符串作为键,字符串作为值。首先,我想在我的词典中找到最常用的密钥。其次,我想在我的词典中找到最常见的值。
我从很长的文本中得到很多单词作为不同的键,然后是该键的值,该单词所属的词性属于该词。
但这是我的字典可能是什么样子的例子:
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())
然而,它找到了最常见的字母......如何让我的代码找到最常用的密钥,然后是最频繁的值?
谢谢!
答案 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