根据子列表的大小向列表添加元素 python

Add elements to list based on size of sublist python

我有一个条目列表:

List X: 
[[1, 1, 'D'],
 [2, 5, 'C'],
 [6, 22, 'S'],
 [23, 57, 'C'],
 [58, 59, 'S'],
 [60, 62, 'C'],
 [63, 64, 'S'],
 [65, 76, 'C'],
 [77, 77, 'S'],
 [78, 79, 'C'],
 [80, 96, 'S'],
 [97, 105, 'C'],
 [106, 132, 'S'],
 [133, 134, 'C'],
 [135, 137, 'S'],
 [138, 150, 'C'],
 [151, 169, 'S'],
 [170, 173, 'C'],
 [174, 174, 'D']...

我有另一个列表,其中包含一组整数:

List Y: 
[18,
 3,
 1,
 3,
 4,
 8,
 1,
 1,
 3,
 12,
 13,
 13,
 23,
 10,
 10,
 5,
 1,
 4...

我想根据列表 Y 中的整数指示的大小从列表 X 创建子列表的列表 z。

例如:

列表 X 的前 18 个条目将是列表 Z 的子列表。 列表 X 的下 3 个条目将是列表 Z 的子列表。 列表 X 的下一个条目将是列表 Z 的子列表,依此类推。

因此最终结果将类似于:

List z: 

[[[1, 1, 'D'],
 [2, 5, 'C'],
 [6, 22, 'S'],
 [23, 57, 'C'],
 [58, 59, 'S'],
 [60, 62, 'C'],
 [63, 64, 'S'],
 [65, 76, 'C'],
 [77, 77, 'S'],
 [78, 79, 'C'],
 [80, 96, 'S'],
 [97, 105, 'C'],
 [106, 132, 'S'],
 [133, 134, 'C'],
 [135, 137, 'S'],
 [138, 150, 'C'],
 [151, 169, 'S'],
 [170, 173, 'C']], [[174, 174, 'D'],
 [175, 316, 'S'],
 [317, 318, 'C']], [[319, 463, 'S']]...

这可以通过将项目迭代添加到新列表来完成:

X = [[1, 1, 'D'],
     [2, 5, 'C'],
     [6, 22, 'S'],
     [23, 57, 'C'],
     [58, 59, 'S'],
     [60, 62, 'C'],
     [63, 64, 'S']]
Y = [1, 2, 3]

Z, c = [], 0
for n in Y:
    Z.append(X[c: c + n])
    c += n