Skip to main content
 首页 » 编程设计

Python:如何将列表拼接成给定长度的子列表

2025年05月04日12unruledboy

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