【问题标题】:Writing a python Matrix to a text file [closed]将python矩阵写入文本文件[关闭]
【发布时间】:2020-02-08 23:07:31
【问题描述】:

如果我有这样的矩阵:

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 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() 

【问题讨论】:

  • 我投了反对票,因为 OP 似乎没有attempted to try solving the problem themselves first
  • 如果我有这样的矩阵对象的类型是什么?
  • 您尝试过什么,似乎是什么问题?
  • @Twenty 我已经更新了问题以展示我的锻炼情况。请拿走反对票。
  • 您的尝试以何种方式未能达到您想要的效果?请阅读How to Ask

标签: python python-3.x list matrix


【解决方案1】:

根据官方文档,writelineslist 行写入文件。

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])

显示 2D 列表已被展平为 1D 列表,并用空格分隔项目:

['- 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))

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 1970-01-01
    • 2015-06-01
    • 2015-02-16
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多