Python 联接列表,即使列为空,也包含完整数组



我加入了两个列表。

ListA
['5', 'h', 'k', '9', 'a', 'd', 'b']
ListB
[['x', 'y', 'z'], ['a', 'b', 'c'], ['5', 'g', 'd'], ['w', '7', 'k']]

我得到的结果是:

ListC
[['5', 'h', 'k', '9', 'a', 'd', 'b'], ['x', 'y', 'z'], ['a', 'b', 'c'], ['5', 'g', 'd'], ['w', '7', 'k']]

我想创建 5 行 x 7 列的完整数组,如下所示。

ListC
[['5', 'h', 'k', '9', 'a', 'd', 'b'], ['x', 'y', 'z','','','',''], ['a', 'b', 'c','','','',''], ['5', 'g', 'd','','','',''], ['w', '7', 'k','','','','']]

如果可能的话,我想在不安装 lambda 的情况下执行此操作,但如有必要,我会这样做。

提前谢谢。我当前的代码:

ListA = []
ListB = []
ListC = []
import csv
with open('List1.csv', newline='')as file1:
    reader1 = csv.reader(file1)
    for rowOfCells in reader1:
        ListA.append(rowOfCells)      
with open('List2.csv', newline='')as file2:
    reader2 = csv.reader(file2)
    for rowOfCells in reader2:
        ListB.append(rowOfCells)
ListC = ListA + ListB
print (ListC)
with open("ListC",'w', newline= '') as outFile:
    wr = csv.writer(outFile, dialect='excel')
    wr.writerows(ListC)
>>> ListC = [['5', 'h', 'k', '9', 'a', 'd', 'b'], ['x', 'y', 'z'], ['a', 'b', 'c'], ['5', 'g', 'd'], ['w', '7', 'k']]
>>> ListC = [(e + [''] * (len(max(ListC, key=len)) - len(e))) for e in ListC]
>>> print ListC
[['5', 'h', 'k', '9', 'a', 'd', 'b'], ['x', 'y', 'z', '', '', '', ''], ['a', 'b', 'c', '', '', '', ''], ['5', 'g', 'd', '', '', '', ''], ['w', '7', 'k', '', '', '', '']]

最新更新