哪个随机我想要实现这个:

时间:2015-10-23 07:12:32

标签: python random

尝试生成随机数量的[]

sample = random.choice("[]")

以上打印[],如何才能打印其中一个或两个的随机数?

2 个答案:

答案 0 :(得分:3)

随机重复该过程:

[random.choice(['[', ']', '[]']) for _ in range(random.randint(1, 10))]

将生成一个列表,其中包含最多 10个随机选择的三个可用选项,从至少一个开始。请注意,我使用了3个字符串的列表,而不仅仅是2个字符。

演示:

>>> import random
>>> [random.choice(['[', ']', '[]']) for _ in range(random.randint(1, 10))]
[']', '[]']
>>> [random.choice(['[', ']', '[]']) for _ in range(random.randint(1, 10))]
['[', '[]', ']', '[]', '[]', '[]', '[]']

如果您需要将其作为一个字符串,请使用str.join()来连接结果:

''.join([random.choice(['[', ']', '[]']) for _ in range(random.randint(1, 10))])

请注意,这会产生一个长度在1到20个字符之间的字符串,因为您连接最多10个字符串的随机选择,每个字符串长1或2个字符。如果您需要最多10个字符的字符串,请使用random.choice('[]')

答案 1 :(得分:1)

您可以在random.randint中使用range并使用for循环来创建随机数[]

>>> def random_printer(N):
...      for _ in range(random.randint(1,N)):
...          print (random.choice(('[', ']', '[]')))
... 

演示:

>>> random_printer(5)
[
]
>>> random_printer(10)
[]
[]
]
>>> random_printer(10)
[]
[
[
[]
[]
]
]
]
[]