Python 生成随机数据
我试图使用以下脚本以3-mer形式(如AEF)为“ACDEFGHIKLMNPQRSTVWY”生成随机数据,但在输出中我得到了许多类似的3-mer。请你告诉我如何做,不要得到类似的结果或删除相同的3-mer 提前感谢,, 伯克 只是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
应该没问题要删除相同的项目,只需将其设置为一组:
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