将数组拆分为子数组

时间:2018-11-23 10:58:10

标签: python arrays loops

我想将一个数组分解为每个具有N个元素的子数组。但是一个子数组必须具有最后一个子数组,并假设前一个子数组的2个元素作为其第一个元素。谁能帮我解决这个问题? enter image description here

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解您的问题,但这就是我会这样做的方式

import math

x = [0,9,8,6,1,2,3,4,5,6,8]
N = 4
tail = 2

new_x = [x[:N]]
for i in range(math.ceil((len(x)-N) / (N-tail))):
    new_x.append(new_x[-1][-tail:] + x[N + i*(N-tail): N + (i+1)*(N-tail)])
if len(new_x[-1]) < N:
    new_x[-1] += x[:N-len(new_x[-1])]

print(new_x)

输出:

[[0, 9, 8, 6], [8, 6, 1, 2], [1, 2, 3, 4], [3, 4, 5, 6], [5, 6, 8, 0]]