Python 2.7 TypeError:类型为'的对象;功能';没有len(),函数调用是否正确?

Python 2.7 TypeError:类型为'的对象;功能';没有len(),函数调用是否正确?,python-2.7,typeerror,Python 2.7,Typeerror,我正试图编写一个简单的代码,将一条DNA链翻译成RNA,并返回相应的蛋白质。我在第19行收到一个TypeError(“对于范围内的I(len(y))”)。变量y将是一个列表。我试过研究其他问题,但它们的解决方案都不适用于我的代码。我感到困惑,因为我认为变量的调用是正确的。有人能提供一些见解吗 这是我的密码: dna = 'ATGCTAGCTAGCTAGCTAGTATTATATAGCGCGATCGATCGATA' dna_list = [] for char in dna: dna_li

我正试图编写一个简单的代码,将一条DNA链翻译成RNA,并返回相应的蛋白质。我在第19行收到一个TypeError(“对于范围内的I(len(y))”)。变量y将是一个列表。我试过研究其他问题,但它们的解决方案都不适用于我的代码。我感到困惑,因为我认为变量的调用是正确的。有人能提供一些见解吗

这是我的密码:

dna = 'ATGCTAGCTAGCTAGCTAGTATTATATAGCGCGATCGATCGATA'
dna_list = []

for char in dna:
    dna_list.append(char)

def rev_dna(x):
    rev_dna = []
    for char in x:
        rev_dna.append(x[len(x)-1])
        del(x[len(x)-1])
        return rev_dna

def translate(y,z):
    for i in range(len(y)):
        if y[i] == 'T':
            y[i] == 'U'
        z = "".join(y)
        return z

rna1 = ""
print translate(dna_list,rna1)

您的代码有几个问题,但没有重现您提到的错误:1。对函数和变量使用相同的名称是个坏主意(
rev_dna
)。2.在遍历列表时从列表中删除项目也是一个非常糟糕的主意。3.您可以简单地使用
dna\u list=list(dna)
代替
循环的第一个
。4我认为
return rev_dna
应该在
for
循环之外。1。我可以解决这个问题2。该函数基于我以前(成功地)使用的代码来反转列表的顺序。如果你有更好的方法,请告诉我。这就是我被教导执行该功能的方式4。这是我在将代码复制到问题编辑器2时犯的错误
li=reversed(li)
li=li[::-1]
。您的代码有几个问题,但没有重现您提到的错误:1。对函数和变量使用相同的名称是个坏主意(
rev_dna
)。2.在遍历列表时从列表中删除项目也是一个非常糟糕的主意。3.您可以简单地使用
dna\u list=list(dna)
代替
循环的第一个
。4我认为
return rev_dna
应该在
for
循环之外。1。我可以解决这个问题2。该函数基于我以前(成功地)使用的代码来反转列表的顺序。如果你有更好的方法,请告诉我。这就是我被教导执行该功能的方式4。这是我在将代码复制到问题编辑器2时犯的错误
li=reversed(li)
li=li[::-1]