我有一个包含数字矩阵的文本文件:
999 999 10 8
3 4 999 999 999
6 999 2 7 999
999 6 3 5 6
999 9 1 10 999
10 6 999 2 2 999
我正在尝试读取每一行并将其存储在Python中的数组中
我无法将每个值从int
更改为string
。我在解析每一行时尝试使用int()
但是我得到的错误是无法将list
传递给int()参数。
答案 0 :(得分:3)
试试:
matrix = [[int(i) for i in line.split()] for line in open('myfile.txt')]
[编辑] 如果你不想让第一行以前读过它。
with open('myfile') as f:
f.readline()
matrix = ....
答案 1 :(得分:2)
使用map()
获取list
list
s:
>>> with open('myfile.txt') as matrix:
... [map(int, line.split()) for line in matrix]
...
[[999, 999, 10, 8], [3, 4, 999, 999, 999], [6, 999, 2, 7, 999], [999, 6, 3, 5, 6], [999, 9, 1, 10, 999], [10, 6, 999, 2, 2, 999]]
答案 2 :(得分:0)
对于每一行,拆分空格字符,然后将每个标记转换为int。使用列表理解的一种方法是:
s = "999 999 10 8"
[int(t) for t in s.split(" ")]
#evaluates to [999, 999, 10, 8]
答案 3 :(得分:-1)
nums = []
with open('file.txt') as f:
for line in f:
nums.append([int(n) for n in line.split()])
你可以把它写成一个列表理解,但这可能会变得讨厌。