FunctionCallTypeErrorPython

2024-06-01 08:43:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图定义一个过程translate(seq),它从包含并返回特定键值的字典中获取seq(表示每个不同DNA代码的3个字符的字符串)作为输入。

这是我的翻译(seq):函数

def translate(seq):        
   protein = ""
   if len(seq) % 3 == 0:
       for i in range(0, len(seq), 3):     
           codon = seq[i:i+3]        
           protein = protein + codon[table]          
    return protein

这是我使用过的字典名称表:

table = {
        'ATA': 'I', 'ATC': 'I', 'ATT': 'I', 'ATG': 'M',
        'ACA': 'T', 'ACC': 'T', 'ACG': 'T', 'ACT': 'T',
        'AAC': 'N', 'AAT': 'N', 'AAA': 'K', 'AAG': 'K',
        'AGC': 'S', 'AGT': 'S', 'AGA': 'R', 'AGG': 'R',
        'CTA': 'L', 'CTC': 'L', 'CTG': 'L', 'CTT': 'L',
        'CCA': 'P', 'CCC': 'P', 'CCG': 'P', 'CCT': 'P',
        'CAC': 'H', 'CAT': 'H', 'CAA': 'Q', 'CAG': 'Q',
        'CGA': 'R', 'CGC': 'R', 'CGG': 'R', 'CGT': 'R',
        'GTA': 'V', 'GTC': 'V', 'GTG': 'V', 'GTT': 'V',
        'GCA': 'A', 'GCC': 'A', 'GCG': 'A', 'GCT': 'A',
        'GAC': 'D', 'GAT': 'D', 'GAA': 'E', 'GAG': 'E',
        'GGA': 'G', 'GGC': 'G', 'GGG': 'G', 'GGT': 'G',
        'TCA': 'S', 'TCC': 'S', 'TCG': 'S', 'TCT': 'S',
        'TTC': 'F', 'TTT': 'F', 'TTA': 'L', 'TTG': 'L',
        'TAC': 'Y', 'TAT': 'Y', 'TAA': '_', 'TAG': '_',
        'TGC': 'C', 'TGT': 'C', 'TGA': '_', 'TGG': 'W',
    }

我试图用任意键作为参数调用translate函数 比方说

translate("TCG")

这意味着:

TypeError: string indices must be integers

我需要你的帮助。多谢各位


Tags: 函数代码len字典定义过程tableseq
2条回答
def translate(seq):        
    protein = ""
    if len(seq) % 3 == 0:
       for i in range(0, len(seq), 3):     
          codon = seq[i:i+3]        
          protein = protein + table[codon]
    else raise Exception("Illegal DNA Sequence")
return protein

这应该对你有用

我想你希望codon[table]成为table[codon]

相关问题 更多 >