Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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_Python 2.7 - Fatal编程技术网

Python 生成随机数据

Python 生成随机数据,python,python-2.7,Python,Python 2.7,我试图使用以下脚本以3-mer形式(如AEF)为“ACDEFGHIKLMNPQRSTVWY”生成随机数据,但在输出中我得到了许多类似的3-mer。请你告诉我如何做,不要得到类似的结果或删除相同的3-mer 提前感谢,, 伯克 只是 应该没问题要删除相同的项目,只需将其设置为一组: print set(random_AA_seq(a)) 要获得所有可能的排列,您还可以使用itertools from itertools import permutations length = 3 print

我试图使用以下脚本以3-mer形式(如AEF)为“ACDEFGHIKLMNPQRSTVWY”生成随机数据,但在输出中我得到了许多类似的3-mer。请你告诉我如何做,不要得到类似的结果或删除相同的3-mer

提前感谢,, 伯克

只是


应该没问题

要删除相同的项目,只需将其设置为一组:

print set(random_AA_seq(a))
要获得所有可能的排列,您还可以使用itertools

from itertools import permutations

length = 3
print permutations('ACDEFGHIKLMNPQRSTVWY', length)
。。。然后随机挑选你的3人。

根据评论:

alphabet = "ACDEFGHIKLMNPQRSTVWY"
all_trimers = map("".join, itertools.product(* [alphabet] * 3))
a_few_distinct_trimers = random.sample(all_trimers, 42)

更新的答案,以下脚本将返回所需长度的3个字符的列表。列表中每3个字符将出现一次:

import random

def random_3mers(length):
    seqs = set()

    while len(seqs) < length:
        seqs.add("".join(random.sample("ACDEFGHIKLMNPQRSTVWY", 3)))

    lseqs = list(seqs)
    random.shuffle(lseqs)
    return lseqs

for three_mer in random_3mers(10):
    print three_mer

与ABC+ABC中的类似或与AAA中的类似?与ABC+ABC中的类似。我需要AAA,但不需要(AAA+AAA)和
列表(itertools.compositions(…,3))
如果OP不喜欢“AAA”trimers@qarma:
itertools.permutations
已经排除了同一结果集中的多个值:)是的,但我需要3-mer项(如AAA、ABC和…)没问题,然后只传递3作为长度。再次,我面临着许多重复的3-mer,比如ACF、ACF、ACF-MNP、MNP和…好的,我已经重做了脚本,希望这将更接近你需要的。我如何才能只在一列中获得3-mer项目,而不使用逗号?我需要AAA,但不需要AAA+AAA
alphabet = "ACDEFGHIKLMNPQRSTVWY"
all_trimers = map("".join, itertools.product(* [alphabet] * 3))
a_few_distinct_trimers = random.sample(all_trimers, 42)
import random

def random_3mers(length):
    seqs = set()

    while len(seqs) < length:
        seqs.add("".join(random.sample("ACDEFGHIKLMNPQRSTVWY", 3)))

    lseqs = list(seqs)
    random.shuffle(lseqs)
    return lseqs

for three_mer in random_3mers(10):
    print three_mer
MKY
KWV
PRY
WKQ
YGI
ANQ
GFL
RQE
SCN
GRY