我已阅读Python: Slicing a list into n nearly-equal-length partitions问题的答案。
def partition(lst, n):
division = len(lst) / float(n)
return [ lst[int(round(division * i)): int(round(division * (i + 1)))] for i in xrange(n) ]
我想知道,为了将项目随机分配给分区而不是增量分配,如何修改这些解决方案。
谢谢, S: - )
答案 0 :(得分:21)
在分区之前调用列表中的random.shuffle()
。
答案 1 :(得分:3)
完整的2018解决方案(pytyon 3.6):
import random
def partition (list_in, n):
random.shuffle(list_in)
return [list_in[i::n] for i in range(n)]
当心!!这可能会改变您的原始列表
答案 2 :(得分:1)
随机输入列表。
答案 3 :(得分:0)
首先,你将列表随机化,然后将它分成几乎相等的部分。