Python将列表重塑为多维列表


问题内容

我有一个列表,每个维度的长度都不同,如下所示:

list1=[[2,3,4],[1],[77,8,27,12],[25,15]]

而且我还有另一个具有相同数量元素的列表,例如:

list2=[a,b,c,d,e,f,g,h,i,j]

我想将list2重塑为list1,并在for循环中一起处理两个列表。


问题答案:

这是一种可爱的方式。

list1 = [[2,3,4],[1],[77,8,27,12],[25,15]]
list2 = list("abcdefghij")

list2_iterator = iter(list2)
list2_reshaped = [[next(list2_iterator) for _ in sublist] for sublist in list1]

print(list2_reshaped)

Out: [['a', 'b', 'c'], ['d'], ['e', 'f', 'g', 'h'], ['i', 'j']]

我不知道单纯的理解是否有可能。