Python:追加行

时间:2015-07-29 21:11:08

标签: python list append

我正在尝试将行附加到从文件读取的空列表中,并且我已经删除了返回行和换行符,但是应该将一行作为两个单独的项输入到列表中。< / p>

DNA = open('DNAGCex.txt')
DNAID = []
DNASEQ = []
for line in DNA:
    line = line.rstrip()
    line = line.lstrip()
    if line.startswith('>')==True:
        DNAID.append(line)
    if line.startswith('>')==False:
        DNASEQ.append(line)
print DNAID
print DNASEQ

这是输出

  

['&gt; Rosalind_6404','&gt; Rosalind_5959','&gt; Rosalind_0808']   ['CCTGCGGAAGATCGGCACTAGA','TCCCACTAATAATTCTGAGG','CCATCGGTAGCGCATCCTTAGTCCA','ATATCCATTTGTCAGCAGACACGC','CCACCCTCGTGGTATGGCTAGGCATTCAG','TGGGAACCTGCGGGCAGTAGGTGGAAT']

我希望它看起来像这样:

  

['&gt; Rosalind_6404','&gt; Rosalind_5959','&gt; Rosalind_0808']   ['CCTGCGGAAGATCGGCACTAGATCCCACTAATAATTCTGAGG','CCATCGGTAGCGCATCCTTAGTCCAATATCCATTTGTCAGCAGACACGC','CCACCCTCGTGGTATGGCTAGGCATTCAGTGGGAACCTGCGGGCAGTAGGTGGAAT']

这是源材料,只需删除's:

  

[ '&GT; Rosalind_6404'   CCTGCGGAAGATCGGCACTAGA   TCCCACTAATAATTCTGAGG   '&GT; Rosalind_5959'   CCATCGGTAGCGCATCCTTAGTCCA   ATATCCATTTGTCAGCAGACACGC   '&GT; Rosalind_0808'   CCACCCTCGTGGTATGGCTAGGCATTCAG   TGGGAACCTGCGGGCAGTAGGTGGAAT]

2 个答案:

答案 0 :(得分:1)

在循环的每次迭代中,您只需查看文件中的某一行。这意味着,虽然你肯定会在最后附加不包含换行符的行,但你仍然一次附加一个文件行。您必须让解释器知道您想要组合某些行,通过在首次开始读取DNASEQ时设置标志并在下一个DNAID开始时清除它。

for line in DNA:
    line = line.strip() # gets both sides
    if line.startswith('>'):
        starting = True
        DNAID.append(line)
    elif starting:
        starting = False
        DNASEQ.append(line)
    else:
        DNASEQ[-1] += line

答案 1 :(得分:1)

您可以将.lstrip().rstrip()合并为一个.strip()来电。

然后,您认为.append()在列表中添加了行并将行连接成一行。在这里,我们使用空字符串启动DNASEQ并使用+=将这些行连接成一个长字符串:

DNA = open('DNAGCex.txt')
DNAID = []
DNASEQ = []
for line in DNA:
    line = line.strip()
    if line.startswith('>'):
        DNAID.append(line)
        DNASEQ.append('')
    else:
        DNASEQ[-1] += line
print DNAID
print DNASEQ