2014-09-26 70 views
0

有人請指教我如何才能找到序列中所有目標字符串的索引。例如,如果我有一個字符串:找到序列中所有目標字符串的索引

seq = 'CGCAGCTGCCG' 

我想查找序列中所有'C'的索引。我目前的代碼是:

for letter in seq: 
    if letter == 'C': 
     print (seq.find(letter)) 

然而,這隻輸出第一個'C'的索引。

如何解決此問題?

感謝

回答

2

使用enumeratelist comprehension

>>> seq = 'CGCAGCTGCCG' 
>>> [i for i, x in enumerate(seq) if x == 'C'] 
[0, 2, 5, 8, 9] 
+0

是在'enumerate'不是做這樣的事情更有效: '[i for i in range(len(seq))if seq [i] =='C']' – ZWiki 2014-09-26 16:19:36

+0

@ZWiki,根據'timeit'結果,它取決於'seq'的大小:http://pastebin.com/LeFCVT46 – falsetru 2014-09-26 16:21:42

+0

有趣。謝謝你:) – ZWiki 2014-09-26 16:24:15

0

使用enumerate讓每個Cind /index

indexes = [ind for ind,ele in enumerate(seq) if ele == "C"] 
相關問題