我想要将一个列表中的列表元素插入到任意深度的空列表嵌套中。这两个列表具有相同的长度。
例如,我可能希望插入:
a = [ [1], [2,3], [[4,5]] ]
转换为
b = [ [[ ]], [[[[ ]]]], [ ] ]
为了让我获得
c = [ [[1]], [[[[2,3]]]], [ [4,5] ] ].
我尝试了各种方法,但还无法接近可行的解决方案。
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]]]
for s, l in zip(a, b):
while l:
l, = l
l[:] = s
这样 b
就变成了:
[[[1]], [[[[2, 3]]]], [[4, 5]]]