x = [2, 1, 2, 0, 1, 2, 2]
我想将上面的列表拼接成length = [1, 2, 3, 1]的子列表。换句话说,我希望我的输出看起来像这样:
[[2], [1, 2], [0, 1, 2], [2]]
我的第一个子列表的长度为 1,第二个子列表的长度为 2,依此类推。
请您参考如下方法:
您可以在此处使用 itertools.islice 每次迭代消耗源列表的 N 个元素,例如:
from itertools import islice
x = [2, 1, 2, 0, 1, 2, 2]
length = [1, 2, 3, 1]
# get an iterable to consume x
it = iter(x)
new_list = [list(islice(it, n)) for n in length]
给你:
[[2], [1, 2], [0, 1, 2], [2]]
