数组是一种常见的数据结构,它可以存储大量的数据。在Python中,数组可以使用列表来表示。当我们需要把一个数组平均分成若干部分时,可以使用Python内置的函数进行处理。
def split_array(arr, n): k, m = divmod(len(arr), n) return (arr[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in range(n)) arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] n = 3 result = list(split_array(arr, n)) print(result)
上述代码中,我们定义了一个函数split_array,它接受两个参数,arr表示要平均分的数组,n表示要分成的部分。函数的主要实现是通过Python内置的divmod函数来计算每个部分的长度,然后使用列表切片来分割数组。最终返回一个生成器,使用list函数将其转换为列表。
我们使用一个示例数组[1, 2, 3, 4, 5, 6, 7, 8, 9],将其分成3部分,运行结果为:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
可以看到,数组被平均分成了三个部分,每个部分包含3个元素。
此外,如果数组长度不能被n整除,则最后一个部分会多出一些元素。我们在切片时使用min函数来判断每个部分是否需要多取1个元素,以保证每个部分的长度尽可能相等。
总的来说,在Python中实现数组平均分比较简单,我们只需要使用内置函数和列表切片来进行处理即可。