Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的程序多次返回相同的排列?_Python_Duplicates_Permutation - Fatal编程技术网

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

Python 为什么我的程序多次返回相同的排列?,python,duplicates,permutation,Python,Duplicates,Permutation,我有一个简单的代码,我用它来尝试获得4个核苷酸碱基的所有组合,但只作为3个碱基的集合,因为3个核苷酸组成一个密码子。我基本上需要生成所有可能的排列,它们可以由4个碱基a、c、t和g组成,并将它们分成三块,然而,起初程序似乎工作正常,然后当我看到结果时,我意识到它重复排列了5次 我只需要一次所有的排列,我不知道如何更改我的代码来获得这个结果。我对Python也很陌生,所以我非常希望在任何答案中使用简单的谈话和行话,谢谢 代码如下: import itertools bases = ['a','c

我有一个简单的代码,我用它来尝试获得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,lenbase+1:line范围内

如果没有这一点,它可以正常工作

import itertools

bases = ['a','c','t','g']
for subset in itertools.permutations(bases, 3):
  print(subset)
范围为0,lenbase+1的L的线循环5次,给出重复排列

您可以删除该行:

import itertools

bases = ['a','c','t','g']
for subset in itertools.permutations(bases, 3):
    print(subset)