仍然试图找出这个problem(我having problems正在构建一个字典,但感谢rickhg12hs)设法让它工作。
这是我目前的代码:
#open files with codon:amino acid pairs, initiate dictionary:
file = open(readall, "rna_codons.txt")
seq = open(readall, "rosalind_prot.txt")
codons = {"UAA" => "stop", "UGA" => "stop", "UAG" => "stop"}
#generate dictionary entries using pairs from file:
for m in eachmatch(r"([AUGC]{3,3})\s([A-Z])\s", file)
codon, aa = m.captures
codons[codon] = aa
end
所有代码似乎都按预期工作。此时,我有我想要的字典,右键指向正确的条目。例如,如果我只是print(codons["AUG"])
,则打印'M'
,这是正确的输出。现在我想扫描第二个文件中的字符串,并且每3个字母,拉出字典中引用的条目并将其添加到prot
字符串。所以我试过了:
for m in eachmatch(r"([AUGC]{3,3})", seq)
amac = codons[m.captures]
prot = "$prot$amac"
end
但这会导致错误key not found: ["AUG"]
。我知道密钥存在,因为我可以打印codons["AUG"]
并返回正确的条目,那么为什么它不能在循环中找到该密钥?