📅  最后修改于: 2023-12-03 15:38:45.796000             🧑  作者: Mango
在Python中,我们可以通过几种不同的方法将一个数组分成几个部分。下面是其中几种常用的方法。
下面的代码使用循环和切片来将一个数组分成三个部分:
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
result = []
for i in range(n):
result.append(data[i::n])
print(result)
代码解释:
data
和一个整数n
result
,用来存储结果n
次,每次取出数组data
的一部分,并添加到result
数组中i::n
表示从索引i
开始,每隔n
个元素取出一个元素这段代码会输出以下结果:
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
这里我们将data
数组分为了三个部分,每个部分的元素个数相等。你可以根据需要修改n
的值来改变分割成几个部分。
我们还可以使用numpy
库中的array_split
函数来分割数组。下面是使用numpy
库的代码:
import numpy as np
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
result = np.array_split(data, n)
print(result)
代码解释:
numpy
库data
和一个整数n
np.array_split
函数将data
数组分成n
个部分result
数组中这段代码也会输出以下结果:
[array([1, 2, 3]), array([4, 5, 6]), array([7, 8, 9])]
最后一个方法是使用itertools
库中的zip_longest
函数来分割数组。下面是代码:
from itertools import zip_longest
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
n = 3
result = list(zip_longest(*[iter(data)] * n, fillvalue=None))
print(result)
代码解释:
itertools
库中的zip_longest
函数data
和一个整数n
data
数组转换成一个迭代器zip_longest
函数将迭代器分割成n
个部分,不足的部分填充为None
这段代码也会输出以下结果:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
我们介绍了三种不同的方法来将一个数组分成几个部分。使用循环和切片的方法是最基础和常见的方法,而使用numpy
库和itertools
库的方法则更加快捷和方便。你可以根据需要使用不同的方法来实现数组分割。