擅长:python、mysql、java
<p>对代码的简单更正:</p>
<pre><code>from collections import defaultdict #this will make your life simpler
f = open('input2.txt','r')
list=defaultdict(str)
name = ''
for line in f:
#if your line starts with a > then it is the name of the following sequence
if line.startswith('>'):
name = line[1:-1]
continue #this means skips to the next line
#This code is only executed if it is a sequence of bases and not a name.
list[name]+=line.strip()
</code></pre>
<p><strong>更新:</strong></p>
<p>因为我收到通知说这个旧的答案被否决了,所以我决定用Python3.7来展示我现在认为是正确的解决方案。转换到Python2.7只需要删除输入导入行和函数注释:</p>
^{pr2}$
<p>现在,我意识到OP要求的是“最简单的解决方案”,然而,既然他们在研究基因组数据,那么假设每个序列都可能非常大似乎是合理的。在这种情况下,通过将序列行收集到一个列表中,然后在最后对这些列表使用<code>str.join</code>方法来生成最终结果,这是有意义的。在</p>