Python, 生成随机括号字符串

2024-09-28 01:24:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望生成方括号的随机长度和模式,例如, [][][[][[][][]

到目前为止,我已经设法让我的程序随机生成方括号,但是随机生成方括号的次数是随机的,所以目前我的程序给出的结果是:

[][][][][][]

【】【】【】

[][][][][]

所以括号内没有随机性,只有括号内显示的随机数。在

我想知道如何使括号的顺序随机,以及括号的数量。在

这是我目前为止的代码

import random
import string

def randomGen(N):
    return random.randint(1,N)

char1 = '['
char2 = ']'
finalist = []
newList = []
newList2 = []

newValue = randomGen(99)

for i in range(newValue):
    newList = char1
    newList2 = char2
    finalist.append(newList + newList2)

for everChar in finalist:
    print everChar,

谢谢。在


Tags: inimport程序forrandom括号方括号char1
3条回答

您可以使用random.sample来选择放置位置的索引,例如,左括号。然后在其他地方放置右括号:

In [119]: import random

In [122]: N = 10

In [125]: idx = set(random.sample(range(N), N//2))

In [126]: idx
Out[126]: {0, 1, 4, 5, 7}

In [127]: ''.join(['[' if i in idx else ']' for i in range(N)])
Out[127]: '[[]][[][]]'

根据您的示例,我假设您需要相等数量的左括号和右括号。如果没有,就用jornsharpe的方法。在

您需要从两个字符中随机选择;您可以在一行中完成这些操作:

 finallist = [random.choice('[]') for _ in range(random.randint(1, 99))]

您还可以简化输出:

^{pr2}$

我刚刚举了一个例子:

[ ] ] [ [ [ ] [ ] ] [

好吧,如果你只是想修改你的代码,你可以简单地做

finalist = list("".join(finalist))
random.shuffle(finalist)
for everChar in finalist:
    ...

如果你想要更有效和更好的方法,请看看其他答案。在

相关问题 更多 >

    热门问题