将python矩阵写入文本文件

将python矩阵写入文本文件,python,python-3.x,list,matrix,Python,Python 3.x,List,Matrix,如果我有这样一个矩阵: A= [['-', 'A', 'B', 'C', 'D', 'E'], ['A', '0', '5', '6', '7', '8'], ['B', '5', '0', '6', '7', '8'], ['C', '6', '6', '0', '7', '8'], ['D', '7', '7', '7', '0', '8'], ['E', '8', '8', '8', '8', '0']] 如何创建包含以下形式的矩阵的文本文件?(或类似形式,以便更易于阅读): 我的尝试:

如果我有这样一个矩阵:

A=
[['-', 'A', 'B', 'C', 'D', 'E'],
['A', '0', '5', '6', '7', '8'],
['B', '5', '0', '6', '7', '8'],
['C', '6', '6', '0', '7', '8'],
['D', '7', '7', '7', '0', '8'],
['E', '8', '8', '8', '8', '0']]
如何创建包含以下形式的矩阵的文本文件?(或类似形式,以便更易于阅读):

我的尝试:

file1 = open("MyFile.txt","a")
A=
[['-', 'A', 'B', 'C', 'D', 'E'],
['A', '0', '5', '6', '7', '8'],
['B', '5', '0', '6', '7', '8'],
['C', '6', '6', '0', '7', '8'],
['D', '7', '7', '7', '0', '8'],
['E', '8', '8', '8', '8', '0']]

file1.writelines(str(A)) 
file1.close() 

根据官方文件,将行列表写入文件

str(A)
不会创建“行列表”——显然,当您将其打印到屏幕上时——因此第一步应该是创建行列表:

A=[
['-', 'A', 'B', 'C', 'D', 'E'],
['A', '0', '5', '6', '7', '8'],
['B', '5', '0', '6', '7', '8'],
['C', '6', '6', '0', '7', '8'],
['D', '7', '7', '7', '0', '8'],
['E', '8', '8', '8', '8', '0']]

print ([' '.join(row) for row in A])
显示二维列表已展平为一维列表,并用空格分隔项目:

['- A B C D E', 'A 0 5 6 7 8', 'B 5 0 6 7 8', 'C 6 6 0 7 8', 'D 7 7 7 0 8', 'E 8 8 8 8 0']
因此,您可以将其转储到文件中:

with open("MyFile.txt","w") as file1:
    file1.writelines ([' '.join(row)+'\n' for row in A])
(根据文档,您需要自己在末尾添加一个换行符)并获得所需结果:

- A B C D E
A 0 5 6 7 8
B 5 0 6 7 8
C 6 6 0 7 8
D 7 7 7 0 8
E 8 8 8 8 0
或者,也可以仅使用
write

with open("MyFile.txt","w") as file1:
    file1.write ('\n'.join(' '.join(row) for row in A))

我投了反对票,因为OP似乎没有。如果我有这样一个矩阵,那么对象的类型是什么?你尝试了什么,问题是什么?@20我更新了问题,以显示我的工作。请取消反对票。你的尝试以什么方式失败了?请阅读。
with open("MyFile.txt","w") as file1:
    file1.write ('\n'.join(' '.join(row) for row in A))