如何在python中拆分具有常量大小的数组

时间:2016-09-22 02:32:44

标签: python arrays

我想实现以下目标

示例

array[1,2,3,4,5,6,7,8,9,10,11,12]

integer i。每次我想从这个数组中获得一个 i-length 子数组。 If i=3

预期/必需输出 第一次得到一个子阵列[1,2,3],第二次得到[4,5,6]。无论如何都要有效地做到这一点。

2 个答案:

答案 0 :(得分:0)

试试这个发电机:

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)移动到下一个切片。

答案 1 :(得分:0)

试试这个

使用 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

        )


)