使用您拥有的代码并解决如何将列表转换为整数的具体问题:
您可以遍历每一行并将字符串转换为int,以下示例使用list comprehension:
给定:
line =['3', '4', '1\r\n']
然后:
int_list = [int(i) for i in line]
将产生一个整数列表
[3, 4, 1]
然后您可以通过下标(0 到 2)访问。例如
int_list[0] 包含3,
int_list[1] 包含4,
等等
更精简的版本供您考虑:
with open('data.txt') as f:
for line in f:
int_list = [int(i) for i in line.split()]
print int_list
使用with 的好处是它会在您完成或遇到异常时自动为您关闭文件。
更新:
根据您下面的 cmets,如果您想要 3 个不同变量中的数字,例如 a、b 和 c,您可以执行以下操作:
for line in f:
a, b, c = [int(i) for i in line.split()]
print 'a = %d, b = %d, c = %d\n' %(a, b, c)
然后得到这个:
a = 9, b = 8, c = 1
这取决于每行有 3 个数字。
旁白:
请注意,您还可以使用这种形式的“生成器表达式”(GE)来代替“列表理解”(LC):
a, b, c = (int(i) for i in line.split())
对于您的 3 个整数的特殊问题,这并没有太大的区别,但为了完整起见,我将其展示出来。对于较大的问题,LC需要更多的内存,因为它会一次在内存中生成一个完整的列表,而GE则根据需要一个一个地生成一个值。如果您好奇,这个 SO question Generator Expressions vs. List Comprehension 将为您提供更多信息。