Python计算一个字符串中没有重叠的出现次数



我试图从字符串中找到每2个连续字符的出现。结果将是一个dictionary作为key = 2 charactersvalue = number of occurrence

我试了如下:

seq = "AXXTAGXXXTA"
d = {seq[i:i+2]:seq.count(seq[i:i+2]) for i in range(0, len(seq)-1)}

问题是XX的结果应该是3而不是2

您可以使用collections.Counter

from collections import Counter
seq = "AXXTAGXXXTA"
Counter((seq[i:i+2] for i in range(len(seq)-1)))

输出:

Counter({'AX': 1, 'XX': 3, 'XT': 2, 'TA': 2, 'AG': 1, 'GX': 1})

或者不需要额外的库。您可以使用dict.setdefault

seq = "AXXTAGXXXTA"
d = {}
for i in range(len(seq)-1):
key = seq[i:i+2]
d[key] = d.setdefault(key, 0) + 1
print(d)

相关内容

  • 没有找到相关文章

最新更新