【发布时间】:2014-08-27 11:51:50
【问题描述】:
我希望在单个列表理解中执行此操作:
for rec in SeqIO.parse(infile2, "fastq"):
if rec.id+"_RC" in RCList:
rec.reverse_complement(id=rec.id,description="")
else:
rec
这行得通:
good_reads = ( rec.reverse_complement(id=rec.id,description="") for rec in SeqIO.parse(infile2, "fastq") if rec.id+"_RC" in RCList )
如果我将 else 放入这一行,则会出现一般无效的语法错误:
(1) 读取 = ( rec.reverse_complement(id=rec.id,description="") for rec in SeqIO.parse(infile2, "fastq") if rec.id+"_RC" in RCList rec if not rec .id+"_RC" in RCList)
或同样适用:
(2) 读取 = ( rec.reverse_complement(id=rec.id,description="") for rec in SeqIO.parse(infile2, "fastq") if rec.id+"_RC" in RCList else (rec) )
最后,我使用 SeqIO 将其写入文件
SeqIO.write(good_reads,infile2+".RC.fastq", "fastq")
上述(1)和(2)有什么问题?
【问题讨论】:
标签: python list if-statement list-comprehension biopython