Python,生成随机的括号字符串

2024-03-01

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

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

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

[][][]

[][][][][]

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

我想知道如何使括号的顺序与显示的括号的数量一样随机。

这是到目前为止我的代码,

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,

Thanks.


你可以使用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]: '[[]][[][]]'

根据您的示例,我假设您需要相同数量的左括号和右括号。如果没有,请使用 jonrsharpe 的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python,生成随机的括号字符串 的相关文章

随机推荐