Python如何读取一行并将其拆分为多个整数

Python如何读取一行并将其拆分为多个整数,python,file-io,Python,File Io,对于按空格/制表符分隔的输入文件,如: 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)] 一种方法是假设子列表位于单独的行上: with open("filename.txt", 'r') as f: data = [map(int, line.split()) for line in f] 注意,with

对于按空格/制表符分隔的输入文件,如:

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)]

一种方法是假设子列表位于单独的行上:

with open("filename.txt", 'r') as f:
    data = [map(int, line.split()) for line in f]
注意,
with
语句直到Python2.6才成为正式语句。如果您使用的是早期版本,则需要执行以下操作

from __future__ import with_statement
tuples=[tuple(int(s)表示line.split()中的s)表示line in open(“file.txt”).readlines()]

我喜欢,而不是内部发电机。

你是说,像这样?

更新

只需将每个字符串转换为int

string = """1 2 3
4 5 6
7 8 9"""

data = []
for line in string.split("\n"):    #split by new line
    data.append( map( int, line.split(" ") ) ) # split by spaces and add 

print( data )
输出:

['1','2','3'],['4','5','6'],['7','8','9']]


Da daaaa

如果您正在处理矩阵或数字表,我可以推荐numpy软件包吗

def getInts(ln):
    return [int(word) for word in ln.split()]

f = open('myfile.dat')
dat = [getInts(ln) for ln in f]
import numpy as np
data = np.loadtxt(input_filename)

我最终使用了映射函数。仍然没有找到将所有读入字符串转换为整数的另一种方法。哦,我以为你已经读错了,我最终使用了…这种方法真的能将拆分的行存储到元组中吗?你能再解释一下吗?谢谢。实际上这会给你一个列表列表,而不是元组列表(因为
str.split
返回一个列表)。基本上,它所做的是打开文件,读取其中的行,然后遍历它们(
对于tup in…
),并在空白处拆分每个行。那么如何存储在tuple中呢?这是我最初问题的一部分。谢谢。@David:OP说的是列表或元组,但是打得好,谢谢,编辑好了@斯坦:从列表中构造一个元组。@Stephen:是的,我的评论是指向斯坦在我上面的评论,而不是你的答案。很抱歉没有说清楚。+1这是最接近我的方式,我认为这是5个答案中“最佳实践”(不管是什么意思)的最佳例子。
import numpy as np
data = np.loadtxt(input_filename)