我试图从字符串中找到每2个连续字符的出现。结果将是一个dictionary
作为key = 2 characters
和value = 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)