我想用'bigram:frequency'获取字典,其中bigram = str [i] + str [i + 1]。所以这是我的解决方案:
f_dict = {}
for i in range(0, len(string) - 1, step):
if string[i] + string[i + 1] in f_dict:
f_dict[string[i] + string[i + 1]] += 1
else:
f_dict[string[i] + string[i + 1]] = 1
是否可以在一行中用dict理解来写这个,或者是否有更好的解决方案(在性能的意义上)?
答案 0 :(得分:0)
您可以执行以下操作:
s = 'abaabaab' # Your string
# Dictionary comprehension
dic = {k : s.count(k) for k in {s[i]+s[i+1] for i in range(len(s)-1)}}
结果:
In[2]: dic
Out[3]: {'aa': 2, 'ab': 3, 'ba': 2}