Для входа файл отделяются пространством/вкладкой как:
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
не стал официальным до Python 2.6. Если вы используете более раннюю версию, вам нужно сделать
from __future__ import with_statement
Если вы имеете дело с матрицами или таблицами чисел, могу я предложить пакет numpy?
import numpy as np
data = np.loadtxt(input_filename)
tuples = [кортеж (int (s) для s в line.split ()) для открытой строки ("file.txt"). Readlines ()]
Мне нравится карта Джеффа (int, line.split ())
вместо внутреннего генератора.
Вы имеете в виду, вот так?
update
Просто преобразуйте каждую строку в 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']]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Дааааа !!!
def getInts(ln):
return [int(word) for word in ln.split()]
f = open('myfile.dat')
dat = [getInts(ln) for ln in f]