Python:随机序列

1 投票
4 回答
1419 浏览
提问于 2025-04-15 20:05

我有以下代码:

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))

撰写回答