擅长:python、mysql、java
<p>您发布的代码只是部分代码,但是您对每个索引迭代了一次<code>sequences</code>。您可以使用<code>zip</code>在一次过程中对它们进行计数(即使最后您必须读取每个字符一次,因此我的解决方案只更改读取顺序):</p>
<pre><code>A = []
for s in zip(*sequences):
print(s)
num_a = 0
for nuc in s:
if nuc == "A":
num_a += 1
A.append(num_a)
print(A)
</code></pre>
<p>{<cd3>}的内容是:</p>
<pre><code>('G', 'T', 'C', 'A', 'T', 'T')
('A', 'C', 'A', 'C', 'A', 'A')
('G', 'C', 'G', 'A', 'G', 'G')
</code></pre>
<p>依此类推,您可以看到所有序列一次读取一个字符,结果是:</p>
<pre><code>[1, 4, 1, 0, 0, 3, 4, 1, 1, 3, 0, 2, 0]
</code></pre>
<p>如果序列的长度不同,可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools.zip_longest" rel="nofollow noreferrer">^{<cd4>}</a>
用另一个字符填充较短的序列</p>
<p>干杯</p>