我希望生成随机长度和方括号模式,例如,
[] ][ [] ][ [] [[ ]] []
到目前为止,我已经设法让我的程序随机生成括号,但随机生成括号的次数,所以目前我的程序给我的结果是,
[][][][][][]
[][][]
[][][][][]
所以括号内没有随机性,只有显示的括号数量的随机性。
我想知道如何使括号的顺序与显示的括号的数量一样随机。
这是到目前为止我的代码,
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(使用前将#替换为@)