为什么我的程序多次返回相同的排列?

时间:2014-10-21 10:42:39

标签: python duplicates permutation

我有一个简单的代码,我用它来尝试获得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').....

2 个答案:

答案 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)