0
分割的阵列我想实现以下事情如何以恒定的大小在python
例
array[1,2,3,4,5,6,7,8,9,10,11,12]
和integer i
。每次我想从这个数组中获得一个长度为的子数组。 If i=3
预期/所需的输出: 得到一个子阵列[1,2,3]在第一次,在第二时间,我得到[4,5,6]。无论如何要有效地做到这一点。
分割的阵列我想实现以下事情如何以恒定的大小在python
例
array[1,2,3,4,5,6,7,8,9,10,11,12]
和integer i
。每次我想从这个数组中获得一个长度为的子数组。 If i=3
预期/所需的输出: 得到一个子阵列[1,2,3]在第一次,在第二时间,我得到[4,5,6]。无论如何要有效地做到这一点。
试试这个发生器:
def slice_generator(a, i):
ind =[[j+l for l in range(i)] for j in a[::i][0:-1]]
for s in ind:
yield [a[k] for k in s]
测试:
a = range(10)
i = 3
# create
a_slice_generator = slice_generator(a,i)
# iterate
for slice in a_slice_generator:
print slice
结果:
[0, 1, 2]
[3, 4, 5]
[6, 7, 8]
您也可以next(a_slice_generator)
移动到下一个片。
尝试这个
使用array_chunk
。
$input_array = array(1,2,3,4,5,6,7,8,9,10,11,12);
print_r(array_chunk($input_array, 3));
输出
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 4
[1] => 5
[2] => 6
)
[2] => Array
(
[0] => 7
[1] => 8
[2] => 9
)
[3] => Array
(
[0] => 10
)
)