我还有一个字典,其中的键是in,值是长序列,不仅由K和M组成,而且还有一些对我来说不重要的字符。
li = {id1: "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM",
id2:"MMKFJDFKFGKJKMKMKMKMKMJKJHFKMKMKM"}我想要找到长度至少为6的"KMKMKM“的主题。它可以是偶数或奇数,恰好等于或长于6。它也应该在具有相同关键字的字典中,但不是整个序列,值必须是主题列表。如下例所示。
results = {id1: ["KMKMKMK"], id2: ["KMKMKMKMKM", "KMKMKM"] }我已经写了这段代码,但没有返回感兴趣的motifs。
{k: re.findall(r'(?:KM){6,1000}', v) for k, v in li.items()}发布于 2017-02-03 21:54:54
下面的代码完成了这个任务:
((?:KM){3,}K?)说明:
( : group 1
(?:KM){3,} : non capture group, 3 or more times KM
K? : optional K
) : end group 1运行中的:
import re
li = {'id1': "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM",
'id2':"MMKFJDFKFGKJKMKMKMKMKMJKJHFKMKMKM"}
res = {k: re.findall(r'((?:KM){3,}K?)', v) for k, v in li.items()}
print(res)输出:
{'id2': ['KMKMKMKMKM', 'KMKMKM'], 'id1': ['KMKMKMK']}发布于 2017-02-03 21:25:08
这就是你要找的吗:
import re
stringA = "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM";
motifs = "KMKMKM";
m = re.search(motifs, stringA)
if m:
print(motifs);回复你下面的评论:
stringA = "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM";
motifs = "KMKMKM";
i = 0;
while True:
seq = stringA[i:]
i = i + 1;
if (seq.startswith(motifs)):
print(seq);
if (len(stringA) == i):
break;https://stackoverflow.com/questions/42025153
复制相似问题