Python如何读取并分割一行成多个整数

7 投票
5 回答
12946 浏览
提问于 2025-04-16 00:27

对于输入文件,内容是用空格或制表符分开的,比如:

1 2 3
4 5 6
7 8 9

如何读取这一行并把整数分开,然后保存到列表或元组里呢?谢谢。

data = [[1,2,3], [4,5,6], [7,8,9]]
data = [(1,2,3), (4,5,6), (7,8,9)]

5 个回答

2

这段代码的意思是,从一个叫“file.txt”的文件中读取每一行,然后把每一行的内容分开,转换成整数,最后把这些整数放到一个元组里。所有的元组会被放到一个列表中。

我喜欢Jeff的方法,使用map(int, line.split()),而不是里面的生成器。

3

如果你正在处理矩阵或者数字表格,我建议你使用numpy这个工具包。

import numpy as np
data = np.loadtxt(input_filename)
11

有一种方法可以做到这一点,前提是子列表在不同的行上:

with open("filename.txt", 'r') as f:
    data = [map(int, line.split()) for line in f]

请注意,with 这个语句直到 Python 2.6 版本才正式推出。如果你使用的是更早的版本,你需要这样做:

from __future__ import with_statement

撰写回答