我正在使用Python 3中的编码类,我需要帮助找出我的代码有什么问题。基本上我正在做的是采用mRNA序列并拼接序列中的外显子。我给函数一个序列和外显子的位置,然后它必须将它们拼接出来并返回mRNA串。赋值的关键是我们不应该使用列表推导,拆分或连接方法。以下是我到目前为止的情况:
def splice(seq, exons):
newseq = ""
i = 0
for x in exons:
while i < len(seq):
if i == x[0]:
i += (x[1] - x[0])
else:
newseq += seq[i]
i = i + 1
return newseq
就像现在一样,我的代码返回的mRNA序列只有第一个外显子拼接而不是外显子位置列表中的任何其他外显子。像这样:
>> splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
'AAATTTTGGGTTTAA'
它应该返回(对于我给出的例子):'AAATTTTAA'
有没有人对如何使这项工作有任何建议?谢谢! (提醒我在本学期之前从未编写过,除了Java中的一小部分,所以请不要过于批评我。)
答案 0 :(得分:0)
试试这个:
def splice(seq, exons):
newseq = ""
next = 0
for x, y in exons:
newseq += seq[next:x]
next = y
newseq += seq[next:]
return newseq
并测试:
>>> splice("AAACCCTTTTGGGTTTAA", [(3,6), (10,16)])
'AAATTTTAA'