gpt4 book ai didi

python - 从 Python 文件中读取包含整数的行?

转载 作者:太空狗 更新时间:2023-10-29 20:39:00 25 4
gpt4 key购买 nike

我有这样的文件格式:

9 8 1
3 4 1
...
...

现在,我想将每一行作为三个整数。

当我用

for line in f.readlines():
print line.split(" ")

脚本打印了这个:

['9', '8', '1\r\n']
['3', '4', '1\r\n']
...
...

如何将每一行作为三个整数?

最佳答案

使用您拥有的代码并解决有关如何将列表转换为整数的具体问题:

您可以遍历每一行并将字符串转换为 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 的好处是,当您完成后,或者遇到异常时,它会自动为您关闭文件。

更新:

根据您在下面的评论,如果您想要 3 个不同变量中的数字,比如 abc,您可以这样做以下内容:

   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 会根据需要逐个生成一个值。这个问题Generator Expressions vs. List Comprehension如果你好奇的话,会给你更多的信息。

关于python - 从 Python 文件中读取包含整数的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11354544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com