Python-在csv文件中为nxn列表数据的一半创建对称列表

Python-在csv文件中为nxn列表数据的一半创建对称列表,python,csv,import,Python,Csv,Import,我得到了csv文件中的数据。 然后我使用这些代码将文件导入Python with open('file.csv') as data: reader = csv.reader(data) dat = list(reader) 我使用以下代码将-替换为0 for i in range(len(dat)): for j in range (len(dat[0])): if dat[i][j] == '-':

我得到了csv文件中的数据。 然后我使用这些代码将文件导入Python

with open('file.csv') as data:
        reader = csv.reader(data)
        dat = list(reader)
我使用以下代码将-替换为0

for i in range(len(dat)):
        for j in range (len(dat[0])):
            if dat[i][j] == '-':
                dat[i][j] = 0
然后我得到了这样的东西

dat=[[0,"8","4","10],["",0,"5","6"],["","",0,"9"],["","","",0]]
如何使dat对称,并用0替换所有数据,并使中的数字成为整数

预期产出:

dat=[[0,8,4,10],[8,0,5,6],[4,5,0,9],[10,6,9,0]]

非常感谢你

如果要将数据存储在文件中,则需要读取数据并将其写回csv读取器

在您的示例中,您应该执行以下操作:if dat[i][j]在“-”中,然后将其写回文件

实现这一目标的另一种方法是:

with open('file.csv') as data:
    reader = csv.reader(data)
    output = []
    for row in reader:
        output.append([0 if cell in ("", "-") else int(cell) for cell in row])
    print(output)
演示:


你好您知道如何创建预期的对称输出吗预期输出:dat=[[0,8,4,10],[8,0,5,6],[4,5,0,9],[10,6,9,0]]是-检查答案-代码片段向您展示了如何创建预期的对称输出。@user02您应该接受这个答案,如果它解决了您的问题,请勾选左侧的复选框。您好,我找不到复选框
>>> output = []
>>> rows = [["", "-", "8", "10"], ["1", "-", "", "100"]]
>>> for row in rows:
...     output.append([0 if cell in ("", "-") else int(cell) for cell in row])
... 
>>> print(output)
[[0, 0, 8, 10], [1, 0, 0, 100]]
>>>