首页 > 解决方案 > 将数组拆分为子数组

问题描述

我想将一个数组分成子数组,每个子数组都有 N 个元素。但是一个子数组必须有最后一个,假设前一个子数组的 2 个元素作为它的第一个元素。谁能帮我解决这个问题?在此处输入图像描述

标签: pythonarraysloops

解决方案


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

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

推荐阅读