错误:类型'反转的对象'没有len()?

时间:2018-04-21 10:03:28

标签: python typeerror

我有一个输入列表,我把它转换成一个字符串,所以我可以用于我的主程序(DNA翻译),为此我需要它的长度来找到3个不同的帧。顺便说一下,它需要提到用户输入了一个输入(DNA序列,例如ATGCGTAGT)。

我转换我的comp seq的第一部分是:

comp = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C' }

for i in sequence_list :
    comp_sequence += comp[i]

reversed_comp_seq = ''.join(reversed(comp_sequence))  

稍后,在我的程序中,它在这里使用:

for e in range(0, len(reversed_comp_seq)-len(reversed_comp_seq)%3,3):
    Frame4 += codons1[reversed_comp_seq[e:e + 3]]
    print(Frame4)

然后我无法运行它来找到反向翻译,因为它说明了这一点:

TypeError: object of type 'reversed' has no len()
你能帮帮我吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你的问题有点不清楚,但如果你想做的就是翻译和逆转你能做的DNA序列:

comp = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C' }

s = 'GATACA'
s_comp = s.translate(s.maketrans(comp))
s_comp_reversed = s_comp[::-1]

或者一次完成所有操作:

def complement_reversed(seq):
    return seq.translate(s.maketrans(comp))[::-1]