我试图获得序列的n个随机和非重叠切片,其中每个子序列的长度为l,最好是它们出现的顺序.
这是我到目前为止的代码,每次尝试使它工作变得越来越混乱,不用说它不起作用.
def rand_parts(seq, n, l):
"""
return n random non-overlapping partitions each of length l.
If n * l > len(seq) raise error.
"""
if n * l > len(seq):
raise Exception('length of seq too short for given n, l arguments')
if not isinstance(seq, list):
seq = list(seq)
gaps = [0] * (n + 1)
for g in xrange(len(seq) - (n * l)):
gaps[random.randint(0, len(gaps) - 1)] += 1
result = []
for i, g in enumerate(gaps):
x = …Run Code Online (Sandbox Code Playgroud)