You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python字典将RNA序列翻译为蛋白质序列?

RNA序列翻译为蛋白质序列的Python实现

问题分析

你写的代码有两个核心问题:

  • 错误地把密码子字典和字符串做拼接操作,字典和字符串无法直接相加,逻辑完全错误
  • 没有添加任何打印语句,就算逻辑正确也不会输出结果

正确实现步骤

  1. 按每3个碱基为一组遍历RNA序列,提取密码子
  2. 通过密码子字典查找对应的氨基酸
  3. 把所有氨基酸拼接成完整的蛋白质序列
  4. 打印最终的蛋白质序列

示例代码

假设你已经定义好RNA序列和密码子字典:

# 示例定义(根据你的实际变量调整)
rna_sequence = "AUGCCGACCCGCAGUCCCAGCG"
codon_dictionary = {"AUG": "M", "CCG": "Q", "ACC": "T", "CGC": "R", "AGU": "S", "CCC": "P", "AGC": "S"}

protein_sequence = ""
# 每3个碱基步进一次遍历序列
for i in range(0, len(rna_sequence), 3):
    codon = rna_sequence[i:i+3]
    # 先判断密码子是否在字典中,避免出现KeyError
    if codon in codon_dictionary:
        protein_sequence += codon_dictionary[codon]

# 输出蛋白质序列
print(protein_sequence)

代码说明

  • 初始化空字符串protein_sequence用来存储翻译结果
  • range(0, len(rna_sequence), 3)实现了每3个碱基取一组的遍历逻辑
  • 增加密码子存在性判断,避免遇到字典中未定义的密码子时程序报错
  • 最后通过print()输出最终的蛋白质序列

简化写法(可选)

用生成器表达式可以让代码更简洁:

protein_sequence = ''.join(
    codon_dictionary.get(codon, '') 
    for codon in [rna_sequence[i:i+3] for i in range(0, len(rna_sequence), 3)]
)
print(protein_sequence)

这里用dict.get()方法,当密码子不在字典中时自动返回空字符串,同样能避免报错。

内容的提问来源于stack exchange,提问作者Moo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:43:12