我有一个简单的代码,我用它来尝试获得4个核苷酸碱基的所有组合,但仅作为3个组,因为3个核苷酸构成密码子。我基本上需要生成所有可能由4个基本a,c,t和g组成的排列,并将它们放在三个块中,但是起初程序似乎有效,然后当我查看结果时意识到它重复排列了5次。
我只需要所有排列一次,我不知道如何更改我的代码以获得此结果。我也是Python的新手,所以我非常感谢简单的谈话和行话,谢谢!
这是代码:
import itertools
bases = ['a','c','t','g']
for L in range(0, len(bases)+1):
for subset in itertools.permutations(bases, 3):
print(subset)
我得到的结果看起来是正确的,但我不想重复5次:
('a', 'c', 't')
('a', 'c', 'g')
('a', 't', 'c').....
答案 0 :(得分:0)
你告诉它用第一行for L in range(0, len(bases)+1):
行做五次。
如果没有它,它可以正常工作。
import itertools
bases = ['a','c','t','g']
for subset in itertools.permutations(bases, 3):
print(subset)
答案 1 :(得分:0)
第for L in range(0, len(bases)+1)
行循环5次,为您提供重复的排列。
您可以删除该行:
import itertools
bases = ['a','c','t','g']
for subset in itertools.permutations(bases, 3):
print(subset)