我有以下代码:
import string
import random
d =[random.choice(string.uppercase) for x in xrange(3355)]
s = "".join(d)
print s
此刻它会打印出字母表中随机的字母序列。但是,我需要它打印出一系列只包含四个字母的字母,例如'A','C','U','G'。这将如何实现?
由于
昆
答案 0 :(得分:2)
更改您要求random.choice
选择的集:
import random
d =[random.choice('ACUG') for x in xrange(3355)]
s = "".join(d)
print s
编辑:正如SilentGhost所指出的那样,如果你的最终目标只是创建一个字符串,那么跳过中间列表会更节省内存:
s = "".join(random.choice('ACUG') for x in xrange(3355))
答案 1 :(得分:1)
只需将string.uppercase
替换为包含您的选择的序列(例如,列表或字符串)。
答案 2 :(得分:0)
你的问题不明确。你的意思是你想要选择一个只有4个字符串的字符串吗?如果是这样,那么:
d =[random.choice(string.uppercase) for x in xrange(4)]
或者,如果您只想从四个选项的列表中进行选择,请执行以下操作:
d =[random.choice("ACUG") for x in xrange(3355)]
答案 3 :(得分:0)
我认为 OP希望从string.uppercase中预先选择一个4个字符的样本,然后根据它创建一个3355项字符串:
import string
import random
num_samples = 4
char_sample = random.sample(string.uppercase, num_samples)
d =[random.choice(char_sample) for x in xrange(3355)]
s = "".join(d)
print s
print char_sample
在这种情况下,random.sample(population,sample_count)将很好地处理第一个要求。
但是,我同意其他答案/评论,这个问题有点模糊。