如何将一个列表随机分成n个几乎相等的部分?

问题描述 投票:10回答:4

我已经阅读了Slicing a list into n nearly-equal-length partitions [duplicate]问题的答案。

这是accepted answer

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) ]

我想知道,如何修改这些解决方案,以便将项目随机分配给分区,而不是进行增量分配。

python random slice
4个回答
22
投票

对列表进行分区前先呼叫random.shuffle()


8
投票

完整的2018解决方案(python 3.6):

random.shuffle()

[当心!这可能会改变您的原始列表


1
投票

随机输入列表。


0
投票

首先将列表随机化,然后将其分成n个几乎相等的部分。

© www.soinside.com 2019 - 2024. All rights reserved.