首页  >  文章  >  后端开发  >  如何在Python中将列表分成大致相等的部分?

如何在Python中将列表分成大致相等的部分?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-14 15:03:02843浏览

How to Divide a List into Approximately Equal Parts in Python?

将列表分成大约相等长度的部分

在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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn