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
)
)