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

2024-05-23 16:53:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经读过这个问题的答案了。

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

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


Tags: 答案answerinforlenreturndeffloat
3条回答

随机播放输入列表。

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

import random 
def partition (list_in, n):
    random.shuffle(list_in)
    return [list_in[i::n] for i in range(n)]

小心!这可能会改变原始列表

在对列表进行分区之前,请调用列表上的^{}

相关问题 更多 >