给定一个数组以及您希望它分成的几乎相同大小的部分的数量,是否有这样做的首选方式或者可以处理任务的内置?下面给出了两个示例实现,但有人可能知道更好的方法来完成工作。代码应主要设计为类似于数组的对象,但如果给定可迭代的话,可以选择适用。
示例1
def partition(array, parts):
"""Takes an array and splits it into roughly equally sized parts."""
array_size = len(array)
part_size = math.ceil(array_size / parts)
for offset in range(0, array_size, part_size):
yield array[offset:offset + part_size]
示例2
def partition(array, parts):
"""Takes an array and splits it into roughly equally sized parts."""
size = math.ceil(len(array) / parts)
for stop, start in enumerate(range(parts), 1):
yield array[start * size:stop * size]