nested-lists - python - 将一个嵌套列表中的值复制到另一个空嵌套列表中

61 0

在嵌套列表中将一个值移动到另一个空嵌套列表中,

如果我有:


L = [[1], [2.718], [3.14], [4]]



M = [[], [2], [3], []]




我想返回:


M = [[1], [2], [3], [4]]



我知道可以通过手工完成任务:


M[0].append(L[0][0])


M[3].append(L[3][0]) 



但是我想用一个循环来做一个更大的列表。

我尝试过


for i in M:


 if bool(i)==False: 


 M[i].append(L[i][0])



但这给了我“TypeError:列表索引必须是整数,而不能是最后一行的列表"。

时间: 原作者:

134 5

执行以下操作:


for i in M:



你需要实际的索引,所以,循环遍历从0到索引长度的范围。


for i in range(0, len(M)):


 if len(M[i]) == 0:


 M[i] = L[i]



原作者:
141 4

你可以像这样对列表进行迭代:


for l, m in zip(L, M):


 if len(m) == 0:


 m[:] = l[:]



最后的切片将确保你将对象复制到M的结果子列表中。

原作者:
52 1

list-comprehension中使用zip


[j if j else i for i,j in zip(L,M)]


#[[1], [2], [3], [4]]



原作者:
59 1

另一种方法是使用列表推导:


L = [[1], [2.718], [3.14], [4]]


M = [[], [2], [3], []]



M = [m if len(m)>0 else l for l, m in zip(L, M)]



print(M)



跟上面一样。

原作者:
...