我正在尝试从看起来像这样的文本文件中读取数字:
file.txt:
5
2 3 4 2 3 6 8 4 5
第一行包含一个表示整数 k 的数字。接下来是可变数量的整数,这些整数被空格分隔,我需要将它们作为整数输入到数组中,以便可以对它们进行一些算术运算。
import sys
fileName = sys.argv[1]
with open(fileName) as f:
k = [int(x) for x in next(f).split()] # read first line, this will be k
print("Value for _k_")
print(k)
arrayInts = [] # array used for the numbers
for line in f: # read rest of numbers
arrayInts.append([int(x) for x in line.split()])
print("The list of integers:")
print(arrayInts)
现在,arrayInts可以正常打印,但是类型为“列表”,我在进行算术运算时遇到了麻烦。由于某种原因,我也很难将其转换为整数数组。
有更简单的方法吗?
答案 0 :(得分:1)
此行arrayInts.append([int(x) for x in line.split()])
正在创建一个包含该行中整数的列表,然后将该列表追加到arrayInts
列表中。因此,您将获得一个列表列表。如果仅要将所有int都放在一个列表中,则可以执行以下操作:
arrayInts = [] # array used for the numbers
for line in f: # read rest of numbers
for x in line.split():
arrayInts.append(int(x))