擅长:python、mysql、java
<p>Python 3解决方案,使用<a href="http://docs.python.org/3.3/library/itertools.html#itertools.accumulate" rel="nofollow">^{<cd1>}</a>:</p>
<pre><code>>>> from itertools import accumulate
>>> a = ['MAR', 'TFFVGGNFK', 'LNGSK', 'QSIK', 'EIVER', 'LNTASIPENVEVVICPPATYLDYSVSLVK']
>>> starts = [0] + list(accumulate(map(len, a)))
>>> starts
[0, 3, 12, 17, 21, 26, 55]
>>> pairs = [(l,r-1) for l,r in zip(starts, starts[1:])]
>>> pairs
[(0, 2), (3, 11), (12, 16), (17, 20), (21, 25), (26, 54)]
</code></pre>
<p>请记住,由于切片在Python中的工作方式,<code>(0,3)</code>通常比<code>(0, 2)</code>更有用,但我假设您有自己的理由。你知道吗</p>