首页 > 解决方案 > 努力寻找不同氨基酸的数量

问题描述

def amino_acids(mrna):
    aa_dict = {'CUU': 'Leu', 'UAG': '---', 'ACA': 'Thr', 'AAA': 'Lys', 'AUC': 'Ile',
 'AAC': 'Asn','AUA': 'Ile', 'AGG': 'Arg', 'CCU': 'Pro', 'ACU': 'Thr',
 'AGC': 'Ser','AAG': 'Lys', 'AGA': 'Arg', 'CAU': 'His', 'AAU': 'Asn',
 'AUU': 'Ile','CUG': 'Leu', 'CUA': 'Leu', 'CUC': 'Leu', 'CAC': 'His',
 'UGG': 'Trp','CAA': 'Gln', 'AGU': 'Ser', 'CCA': 'Pro', 'CCG': 'Pro',
 'CCC': 'Pro', 'UAU': 'Tyr', 'GGU': 'Gly', 'UGU': 'Cys', 'CGA': 'Arg',
 'CAG': 'Gln', 'UCU': 'Ser', 'GAU': 'Asp', 'CGG': 'Arg', 'UUU': 'Phe',
 'UGC': 'Cys', 'GGG': 'Gly', 'UGA':'---', 'GGA': 'Gly', 'UAA': '---',
 'ACG': 'Thr', 'UAC': 'Tyr', 'UUC': 'Phe', 'UCG': 'Ser', 'UUA': 'Leu',
 'UUG': 'Leu', 'UCC': 'Ser', 'ACC': 'Thr', 'UCA': 'Ser', 'GCA': 'Ala',
 'GUA': 'Val', 'GCC': 'Ala', 'GUC': 'Val', 'GGC':'Gly', 'GCG': 'Ala',
 'GUG': 'Val', 'GAG': 'Glu', 'GUU': 'Val', 'GCU': 'Ala', 'GAC': 'Asp',
 'CGU': 'Arg', 'GAA': 'Glu', 'AUG': 'Met', 'CGC': 'Arg'}
    
    mrna_list = [aa_dict[mrna[i:i + 3]] for i in range(0, len(mrna) - 1, 3)]
    count = 0
    while True:
        if mrna_list[count] == '---':
            
            mrna_list = mrna_list[:count]
            break
        else:
            count += 1
    conversion_result = tuple(mrna_list)
    return [conversion_result, count]

这是我当前的输出

amino_acids('AUGUCGGCACAUUUAUGCUCCUAAUCC')
[('Met', 'Ser', 'Ala', 'His', 'Leu', 'Cys', 'Ser'), 7]

Expected output
[('Met', 'Ser', 'Ala', 'His', 'Leu', 'Cys', 'Ser'), 6]

标签: python-3.x

解决方案


要仅获取列表的唯一元素,您通常可以将其转换为 aset并返回(至少,当它仅包含字符串或数字等简单内容时)。然后,您可以通过获取该集合的长度来找到唯一元素的数量:

conversion_result = tuple(mrna_list)
return [conversion_result, len(set(conversion_result))

推荐阅读