当前位置: 首页 > 面试题库 >

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

方夜洛
2023-03-14
问题内容

我已经阅读了[将列表切成n个几乎相等长度的分区重复问题的答案。

这是公认的答案:

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()对列表进行分区之前先对其进行调用。



 类似资料:
  • 问题内容: 我正在寻找一种快速,干净,pythonic的方法将列表分为n个几乎相等的分区。 在这里,对列表切片的迭代有几个答案,它们与我想要的非常接近,除了它们专注于列表的 大小 ,而且我关心列表的 数量 (其中一些还填充了None)。显然,这些都是微不足道的转换,但是我正在寻找最佳实践。 同样,人们在这里指出了很好的解决方案如何将列表分成大小均匀的块?对于一个非常类似的问题,但是我对分区的数量而

  • 问题内容: 将列表分为大致相等的最佳方法是什么?例如,如果列表有7个元素并将其分为2部分,则我们要在一部分中获得3个元素,而另一部分应具有4个元素。 我正在寻找类似的东西,打破成部分。 上面的代码给出了3个块,而不是3个块。我可以简单地进行转置(对此进行迭代,并取每列的第一个元素,将其称为第一部分,然后取其第二,然后将其置于第二部分,依此类推),但这样会破坏项目的顺序。 问题答案: 这是一个可行的

  • 问题内容: 我有一个字符串,我想分成N个相等的部分。 例如,假设我有一个长度为128的字符串,我想将其分成4个长度为32的块;也就是说,第一个32个字符,然后第二个32个字符,依此类推。 我怎样才能做到这一点? 问题答案: import textwrap print textwrap.wrap(“123456789”, 2) #prints [‘12’, ‘34’, ‘56’, ‘78’, ‘9’

  • 问题内容: 无论如何,有没有将ArrayList拆分成不同的部分,直到运行时才知道它的大小?我知道有一种方法叫做: 但我们需要明确提及列表的起始和结束范围。我的问题是,我们得到一个包含帐号的数组列表,该数组具有类似2000,4000个帐号的数据(在编码期间不会知道这些数字),我需要将此帐号传递给PL / SQL的IN查询,如下IN不支持超过1000个值,我试图将其拆分成多个块并将其发送给查询 注意

  • 我想把行分成5个相等的部分。它包括,那么我如何将它分成相等的5部分呢? 有人能帮我解决这个问题吗?

  • 问题内容: 在Java中将列表拆分为两个子列表的最简单,最标准和/或最有效的方法是什么?可以更改原始列表,因此无需复制。方法签名可以是 [EDIT] 返回原始列表上的视图,如果修改了原始视图,该视图将无效。因此,除非它也放弃了原始参考文献,否则无法使用(或者,如Marc Novakowski的回答所述,使用但立即复制结果)。 问题答案: 快速半伪代码: 它使用标准的List实现方法,并避免了所有循