首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字符序列中查找motif

在字符序列中查找motif
EN

Stack Overflow用户
提问于 2017-02-03 21:11:53
回答 2查看 367关注 0票数 1

我还有一个字典,其中的键是in,值是长序列,不仅由K和M组成,而且还有一些对我来说不重要的字符。

代码语言:javascript
复制
li = {id1: "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM",
 id2:"MMKFJDFKFGKJKMKMKMKMKMJKJHFKMKMKM"}

我想要找到长度至少为6的"KMKMKM“的主题。它可以是偶数或奇数,恰好等于或长于6。它也应该在具有相同关键字的字典中,但不是整个序列,值必须是主题列表。如下例所示。

代码语言:javascript
复制
results = {id1: ["KMKMKMK"], id2: ["KMKMKMKMKM", "KMKMKM"] }

我已经写了这段代码,但没有返回感兴趣的motifs。

代码语言:javascript
复制
{k: re.findall(r'(?:KM){6,1000}', v) for k, v in li.items()}
EN

回答 2

Stack Overflow用户

发布于 2017-02-03 21:54:54

下面的代码完成了这个任务:

代码语言:javascript
复制
((?:KM){3,}K?)

说明:

代码语言:javascript
复制
(             : group 1
  (?:KM){3,}  : non capture group, 3 or more times KM
  K?          : optional K
)             : end group 1

运行中的

代码语言:javascript
复制
import re

li = {'id1': "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM",
 'id2':"MMKFJDFKFGKJKMKMKMKMKMJKJHFKMKMKM"}

res = {k: re.findall(r'((?:KM){3,}K?)', v) for k, v in li.items()}
print(res)

输出:

代码语言:javascript
复制
{'id2': ['KMKMKMKMKM', 'KMKMKM'], 'id1': ['KMKMKMK']}
票数 3
EN

Stack Overflow用户

发布于 2017-02-03 21:25:08

这就是你要找的吗:

代码语言:javascript
复制
import re

stringA = "KKMKMKMKJASGKKKMOOGBMMMMMMMMMMMMMMMMMM";
motifs = "KMKMKM";

m = re.search(motifs, stringA)
if m:
    print(motifs);

回复你下面的评论:

代码语言:javascript
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42025153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档