如何将元素插入到空列表的任意深度嵌套列表中

时间:2019-09-16 21:50:50

标签: python list nested

将空列表插入任意深度嵌套的列表中,我想从列表中插入元素。两个列表的长度相同。

例如,我可能要插入

a = [ [1], [2,3], [[4,5]] ]

进入

b =  [ [[ ]], [[[[ ]]]], [ ] ]

以便我获得

c =  [ [[1]], [[[[2,3]]]], [ [4,5] ] ]. 

我尝试了各种方法,但是还没有找到可行的解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用递归:

a = [ [1], [2,3], [[4,5]] ]
b =  [ [[ ]], [[[[ ]]]], [ ] ]
def update(j, k):
   return next(k) if not j else [update(i, k) for i in j]

print(update(b, iter(a)))

输出:

[[[1]], [[[[2, 3]]]], [[4, 5]]]

答案 1 :(得分:1)

对于b的每个子列表,您可以迭代地将内部子列表分配给相同的变量,直到子列表变为空为止,此时,您可以将{{1 }}到空的子列表中:

a

使for s, l in zip(a, b): while l: l, = l l[:] = s 变为:

b