Python 将列表合并到一个列表中,没有空格



我有三个列表,一个列表的空格由另一个列表填充。所以我想用另外两个列表完成第一个列表。 例:

L1=[1,2,None,None,5,None,7,None,None,10]
L2=[None,None,3,4,None,None,None,None,9,None]
L3=[None,None,None,None,None,6,None,8,None,None]
result_List= [1,2,3,4,5,6,7,8,9,10]

该列表来自 XML 导出和 .append 函数。所以我的目标是将所有元素插入第一列。使用 .append 它可以创建许多列,而 .extend 只是将它们与空白元素一起写入。

注意:这些值是带有 25 位数字的字符串,并且是字母和数字的混合,因此我无法比较列表中的值。它们只能通过它们所处的位置/指数进行比较。

>>> L1=[1,2,None,None,5,None,7,None,None,10]
>>> L2=[None,None,3,4,None,None,None,None,9,None]
>>> L3=[None,None,None,None,None,6,None,8,None,None]
>>> [a or b or c for a, b, c in zip(L1, L2, L3)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

您可以使用filter来处理任意数量的输入列表:

L1=[1,2,None,None,5,None,7,None,None,10]
L2=[None,None,3,4,None,None,None,None,9,None]
L3=[None,None,None,None,None,6,None,8,None,None]
new_l = [next(filter(None, i)) for i in zip(L1, L2, L3)]

输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

最新更新