使用现有代码并解决如何将列表转换为整数的特定问题:
使用list comprehension以下示例,可以遍历每一行并将字符串转换为int:
给出:line =['3', '4', '1\r\n']
然后:int_list = [int(i) for i in line]
将生成一个整数列表[3, 4, 1]
然后可以通过下标(0到2)访问。e、 g
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的好处是,当您完成此操作或遇到异常时,它将自动为您关闭文件。
更新:
根据您在下面的评论,如果您想要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个数字。
旁白:
请注意,除了“列表理解”(LC),您还可以使用此表单的“生成器表达式”(GE):a, b, c = (int(i) for i in line.split())
对于3个整数的特殊问题,这并没有多大区别,但是我为了完整性而展示它。对于更大的问题,LC需要更多的内存,因为它一次在内存中生成一个完整的列表,而GE则根据需要逐个生成一个值。如果你好奇的话,这个问题Generator Expressions vs. List Comprehension会给你更多的信息。