我试图创建一个函数codon_pairs(pairs, codonsA, codonsB)
,它接受三个参数:字典pairs
和两个列表codonsA
和{codonsB
中的每个密码子序列找到codonsB
中的互补密码子序列,并返回如下匹配对:
pairs = {'A':'T', 'C':'G', 'T':'A', 'G':'C'}
codonsA = ['AAG', 'TAC', 'CGG', 'GAT', 'TTG', 'GTG', 'CAT', 'GGC', 'ATT', 'TCT']
codonsB = ['TAA', 'CTA', 'AAC', 'TTC', 'AGA', 'CCC', 'CCG', 'GTA']
print(codons_pairs(pairs, condonsA, codonsB))
[('AAG', 'TTC'), ('GAT', 'CTA'), ('TTG', 'AAC'), ('CAT', 'GTA'), ('GGC', 'CCG'), ('ATT', 'TAA'), ('TCT', 'AGA')]
二元组中的第一项是来自codonsA
的密码子,第二项是来自codonsB
的匹配密码子。例如,序列AAG(codonsA[0]
)和TCC(codonsB[3]
)是匹配对,因为A的碱基对是T,G的碱基对是C,在pairs
字典中突出显示。在
另一方面,如果找不到匹配对,它将从最终结果中忽略。在
到目前为止,我得到的是:
^{pr2}$我只是不知道如何检查codonsA
和{
将
codonsB
转换为set()
以进行快速检查(O(1)成员身份测试,无需嵌套循环),然后通过pairs
映射映射来自A
的每个密码子,并根据集合测试结果:找到它们的生成函数。您可以使用
list()
函数将生成的生成器转换为一个列表,或者只迭代该函数。在演示:
^{pr2}$相关问题 更多 >
编程相关推荐