我有一串名为seq的文本,其值如下:AATTDYAATTDUUAATTDAATTDAATTDAAAGATAGATAYAMMMCCMMMMMMMMM
现在,我还有一个存储这些字符串的值列表:['AATTD','AGAT','MMM']
。我想用我的代码实现的目的是计算列表中的每个单词(不是每个字母)出现在文本连续中的次数,并将该字符串的计数值存储在字典中。
[当我连续说时,这意味着在以上文本的这一部分中,AATTDYAATTDUUAATTDAATTDAATTD
,值AATD
的计数应仅为3,因为其他2个分别由Y
和UU
分开。
到目前为止,这是我对代码所做的事情:
count = 0
list1 = ['AATTD','AGAT','MMM']
length = len(list1) # The length of the list
print(length)
seq = open(filepath, "r") # open the file that has the string of text
seq = seq.read()
for i in range(len(seq)):
for j in list1:
while (seq[i:len(j)] == len(j) ):
if seq[i:len(j)] == j:
count += 1
print (j, count)
但是这似乎将以0计数打印每个字符串。谁能帮我解决这个问题?谢谢!
使用re.findall
的一种方法:
如果我正确理解期望的结果,可以通过以下方式实现:
在python中使用regex默认软件包。
实际上您可以使用count
。