例如我有
from collections import Counter
cnt = Counter()
text = 'CTGGAT'
def freqWords(text, k):
for i in text:
cnt [i] += 1
print cnt
输出:计数器({'A':10,'C':9,'T':8,'G':4})
返回一个很好的字典,但是,我希望用k的值存储我的项目。像这样,如果k = 2,那么dict将填充以下值: CT,TG,GG,GA,AT。如果k = 3则:CTG,TGG,GGA,GAT。
答案 0 :(得分:0)
您的for i in text
会对text
的字符进行迭代。您必须迭代text
减去k
的长度并获取text
的子字符串:
def freqWords(text, k):
return Counter(text[i:i+k] for i in xrange(len(text) - k))
的工作原理如下:
freqWords('CTGGAT', 2)
# Counter({'GG': 1, 'TG': 1, 'GA': 1, 'CT': 1})