根据子列表的大小向列表添加元素 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
我有一个条目列表:
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