【发布时间】:2018-11-18 17:53:30
【问题描述】:
list1 = [1,2,3,4,5]
list2 = [2,3,4,1,2]
list3 = [2,4,6,2,1]
def random_chunk(li, min_chunk=1, max_chunk= 3):
it = iter(li)
while True:
nxt = list(islice(it,randint(min_chunk,max_chunk)))
if nxt:
yield nxt
else:
break
def shuffle(a, b, c):
assert len(a) == len(b) == len(c)
start_state = random.getstate()
random.shuffle(a)
random.setstate(start_state)
random.shuffle(b)
random.setstate(start_state)
random.shuffle(c)
random.setstate(start_state)
shuffle(list1, list2, list3)
slice = list(random_chunk(list1))
随机混合列表后,我最终使用块函数随机编码。但要让这两个列表平分秋色并不容易。如何以相同的方式剪切多个列表?例如当list1 = [1,2,3,4,5]被切割成[1,2],[3,4,5]时,list2也是[2,3],[4,2,1] .如果你让我知道,我真的很感激。
【问题讨论】:
-
你生成一个随机数当你制作块时。这意味着每次调用该函数时,都会得到随机块。相反,您在开始对列表进行分块之前 获得随机数,然后像这样传递它怎么样?或者在开始对每个列表进行切片之前记录下随机数生成器所在的种子,并确保每个列表都从同一个种子开始?
标签: python python-2.7