如何使用Python读取文本文件并将其存储在二维列表中?

2024-04-25 22:34:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从一个已有的文本文件中读取数据,然后我想把它打印成三角形。你知道吗

距离_矩阵.txt

[0]

[1, 0]

[13, 12, 0]

[17, 16, 10, 0]

[16, 15, 8, 1, 0]

[13, 12, 4, 5, 4, 0]

[12, 11, 6, 11, 10, 6, 0]
  • 首先,我打开文本文件,然后读取并将其存储在列表中:
file1 = open("distance_matrix.txt", "r")
   contents1 = file1.readlines()
  • 接下来,我尝试将每个数字单独拆分,以便将其存储在二维列表中:
for i in contents1.split(", "):
     numbers = re.split(', |\[|\]', i)
     numbers.remove('')
     numbers.remove('\n')
     for j in contents1[i]:
          numbers.append(contents1[i][j])
          print(contents1[i][j])

但这不管用!你知道吗

总之,我在这里要做的是读取文本文件中的每一行,然后拆分每个数字并将其放入矩阵中。你知道吗


Tags: intxt距离列表for矩阵数字读取数据
2条回答

使用json从字符串解析列表。你知道吗

import json
filename = "distance_matrix.txt"
f = open(filename,"r")
lines=f.readlines()

result_matrix = []
for line in lines:
    result_matrix.append(json.loads(line))

print(result_matrix)
#[[0], [1, 0], [13, 12, 0], [17, 16, 10, 0], [16, 15, 8, 1, 0], [13, 12, 4, 5, 4, 0], [12, 11, 6, 11, 10, 6, 0]]

您可以执行以下操作,此解决方案使用re库,您可以在here中阅读有关它的更多信息:

import re

arr = []
file_name = "dist_mat.txt"
with open(file_name, 'r') as fp:
    lines = fp.readlines()
    for l in lines:
        matches = re.findall("(\d+)", l)
        arr.append(list(map(int, matches)))
print(arr[0][:])
print(arr[1][:])
print(arr[2][:])

这将为您提供以下输出:

[0]
[1, 0]
[13, 12, 0]

现在,每一行都按您的需要存储在数组中,arr[pos_i][pos_j]

相关问题 更多 >