擅长:python、mysql、java
<p>您需要的是使用正则表达式来查找间隙(一个或多个破折号,其翻译为“-+”,加号表示<em>一个或多个</em>):</p>
<pre><code>import re
seq = 'ATC----GCTGTA--A-----T'
matches = list(re.finditer('-+', seq))
print 'Number of gaps =', len(matches)
print
for region_number, match in enumerate(matches, 1):
print 'Index Position of Gap region {} = {} to {}'.format(
region_number,
match.start(),
match.end() - 1)
print 'Length of Gap region {} = {}'.format(
region_number,
match.end() - match.start())
print
</code></pre>
<h2>注释</h2>
<ul>
<li><code>matches</code>是匹配对象的列表</li>
<li>为了得到区域编号,我使用了函数<code>enumerate</code>。你可以查一下它是怎么工作的。在</li>
<li>match对象有很多方法,但是我们感兴趣的是<code>.start()</code>,它返回开始索引,<code>.end()</code>返回结束索引。注意,这里的<em>结束索引</em>比您想要的多了一个,因此我从中减去了1。在</li>
</ul>