Python:随机序列
我有以下代码:
import string
import random
d =[random.choice(string.uppercase) for x in xrange(3355)]
s = "".join(d)
print s
现在这段代码会随机打印出字母表中的字母序列。但是,我需要它只打印出包含四个特定字母的序列,比如'A'、'C'、'U'和'G'。我该怎么做呢?
谢谢
Quinn
4 个回答
0
你的问题不太清楚。你是想选择一个长度为4的字符串吗?如果是这样的话,可以这样做:
d =[random.choice(string.uppercase) for x in xrange(4)]
或者,如果你是想从只有四个选项的列表中选择,那就可以这样做:
d =[random.choice("ACUG") for x in xrange(3355)]
1
只需要把 string.uppercase
替换成你自己选择的字符序列(可以是列表或者字符串,比如说)。
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))