2017-03-16 165 views
-1

在我的經驗,這是一個特殊的工作要做。我以許多不同的方式搜索,但仍無法找到答案。 這裏的問題是。計算字符頻率在短語頻率字典python 3

我有中國短語的字典frequency.It樣子:

{'中國':18950, '我們':16734, '我國':15400, ...} 

我需要做的是計算每一個人物的頻率,例如: 字符「國」在兩個詞組出現(」中國'和'我國'),所以這個字符的頻率應該是:

{'國':(18950+15400)} 

我該如何做到這一點?

+2

到目前爲止您嘗試過什麼? –

+0

@Sagar V我目前還不知道,我剛開始學習編程2周。 –

回答

0

我的方式:

from collections import Counter 

c={'中國':18950, '我們':16734, '我國':15400} 
print(Counter([j for k,v in c.items() for i in k for j in [i]*v])) 

輸出:

Counter({'國': 34350, '我': 32134, '中': 18950, '們': 16734}) 
+0

它也可以工作,並自動排序結果,非常感謝! –

0
d = {'中國':18950, '我們':16734, '我國':15400, ...} 

q = 0 
for i in d: 
    if '國' in i: 
     a = (d[i]) 
    q += a 
print(q) 
+0

這不起作用,請再次閱讀該問題。 – Julien

+0

@Julien,現在這個工作,並且不需要進口。 –

0

像這樣的東西應該工作:

from collections import defaultdict 

char_dict = defaultdict(int) 
for phrase, count in phrase_dict.iteritems(): 
    for char in phrase: 
     char_dict[char] += count 
1

簡單的例子,

d = {'abd':2, 'afd':3} 
f = {} 
for key in d: 
    strlen = len(key) 
    for i in range(strlen): 
     if key[i] in f: 
      f[key[i]] += d[key] 
     else: 
      f[key[i]] = d[key] 

print f #gives {'a': 5, 'b': 2, 'd': 5, 'f': 3} 
+0

它完美的作品!非常感謝! –