擅长:python、mysql、java
<p>忘记使用<code>range</code>和索引算法,迭代对正是<code>zip</code>的作用:</p>
<pre><code>>>> dna = 'GAAGG'
>>> for bigram in zip(dna, dna[1:]):
... print(bigram)
...
('G', 'A')
('A', 'A')
('A', 'G')
('G', 'G')
</code></pre>
<p>如果您在字典中存储了相应的可能性,例如:</p>
^{pr2}$
<p>然后,您可以很容易地用<code>sum</code>来求和:</p>
<pre><code>>>> sum(likelihood[''.join(bigram)] for bigram in zip(dna,dna[1:]))
4.2
</code></pre>