Python - 随机将列表分成几乎相等的n个部分

时间:2010-07-28 12:20:56

标签: python random slice

我已阅读Python: Slicing a list into n nearly-equal-length partitions问题的答案。

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

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

谢谢, S: - )

4 个答案:

答案 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)

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