将列表分成大约相等长度的部分
在Python中,内置函数块(在代码片段中提供)可以将列表拆分为指定大小的块。但是,如果列表不能被所需的块大小整除,则会导致块大小不均匀。
要创建大致相等的部分,您可以使用列表生成器:
def split(a, n): k, m = divmod(len(a), n) return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
该函数确定列表长度除以部分数量时的块大小 (k) 和余数 (m)。然后它从列表中生成块,从索引 i*k 开始,到索引 (i 1)*k 结束。这可确保前 m 个块包含剩余部分中的附加元素,从而产生大小大致相等的部分。
示例:
>>> list(split(range(11), 3)) [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
在此示例中,列表范围 (11) 被分为三部分,产生大小为 4、4 和 3 的块。
以上是如何在Python中将列表分成大致相等的部分?的详细内容。更多信息请关注PHP中文网其他相关文章!