我对python的数据结构技巧有点陌生,一直在努力解决一个简单的问题。
我有 2 个 2d 列表
L1=[[1, '', 3],[1, '', 3]...]
L2=[['',2,''],['',2,''].....]
我正在寻找一种简单的方法来合并这两个列表,使得结果是一个新的二维列表,形式如下:
result=[[1,2,3],[1,2,3]....]
我试过了
newestlist=[sum(x,[]) for x in zip(mylist, mylist2)]
但它的结果
badresult=[[1,'',3,'',2,'']....]
有没有办法实现这个目标?
如果任何数字为 0,则此方法无效:
>>> [[x or y or 0 for x, y in zip(a, b)] for a, b in zip(L1, L2)]
[[1, 2, 3], [1, 2, 3]]
编辑:为了清楚起见,将理解分解为 for 循环:
output = []
for a, b in zip(L1, L2):
innerlist = []
for x, y in zip(a, b):
innerlist.append(x or y or 0) # 1 or '' = 1; '' or 2 = 2; etc
output.append(innerlist)