我试图建立一个可能的密码子列表,给出一个蛋白质序列。
基本上,我试图创建的脚本将处理给定的字符串输入并输出输入所表示的另一组字符串的可能组合。
例如,字符“F”表示“UUU”或“UUC”;字符“I”表示“AUU”、“AUC”或“AUA”。
给定输入“FI”,我试图创建的脚本应输出: “UUUAUU”、“UUUAUC”、“UUUAUA”、“uucau”、“uucau”和“uucua”。
我现在被这个代码困住了:
import itertools
F = ['UUU', 'UUC']
I = ['AUU', 'AUC', 'AUA']
seq, pool = 'FI', []
for i in seq:
pool.append(eval(i))
for n in itertools.product(pool):
print(n)
当我用pool[0], pool[1]
替换itertools.product
中的pool
时,它工作。但我不知道如何让它工作,以便用户可以输入一个超过2个字符的字符串(即,不让它硬编码)。
提前谢谢你的帮助!
itertools.product(pool[0]、pool[1]、…pool[len(pool)-1])等同于itertools.product(*pool)
调用
product()
时,可以使用*pool
来“解压缩”列表:此语法将列表
pool
扩展为单独的位置参数。相关问题 更多 >
编程相关推荐