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