我已经阅读了Slicing a list into n nearly-equal-length partitions [duplicate]问题的答案。
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) ]
我想知道,如何修改这些解决方案,以便将项目随机分配给分区,而不是进行增量分配。
对列表进行分区前先呼叫random.shuffle()
。
完整的2018解决方案(python 3.6):
random.shuffle()
[当心!这可能会改变您的原始列表
随机输入列表。
首先将列表随机化,然后将其分成n个几乎相等的部分。