小能豆

合并两个列表,删除空字符串

py

我对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,'']....]

有没有办法实现这个目标?


阅读 63

收藏
2025-02-27

共1个答案

小能豆

如果任何数字为 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)
2025-02-27