У меня есть файл, представляющий огромную матрицу:
54321
| This | Table | |
|:------: |:-----: |:-----: |
| 6.75 | 0 | 20020 |
| 1 | 0 | 13663 |
| 107.75 | 0 | 0 |
| 0.25 | 1 | 27508 |
| 5.5 | 1 | 10964 |
| 11 | 1 | 19826 |
| 9 | 1 | 19817 |
| 7.75 | 1 | 27525 |
| 1.75 | 1 | 13005 |
| 5.25 | 1 | 2441 |
| 1.75 | 1 | 17250 |
| 142.25 | 1 | 1 |
, где первая строка - это измерение, вторая строка - это кортеж, который выглядит как (элементы из разреженной матрицы, индекса строки, индекса столбца).
Мне нужно из этого файла прочитать измерение и сгенерировать векторы для хранения матрицы.
def getLineIndex(a, x):
for lineIndex in range(0, len(a)):
diagonalValue, lineNumber = a[lineIndex][-1]
if lineNumber == x:
return lineIndex
return -1
def getColumnIndex(a, x, y):
line = a[x]
for i in range(0, len(line)):
value, columnNumber = line[i]
if columnNumber == y:
return i
return -1
def read_values(filename):
with open(filename,'r') as file:
n = int(file.readline())
b = list()
for i in range(0, n):
b.append((file.readline()))
a = list()
for line in file:
values = line.replace(",", " ").split()
value = Decimal(values[0])
x = int(values[1])
y = int(values[2])
lineIndex = getLineIndex(a, x)
if lineIndex != -1:
columnIndex = getColumnIndex(a, lineIndex, y)
if columnIndex != -1:
a[lineIndex][columnIndex][0] += value
else:
# #addNewColumn(a, value, lineIndex, y)
a[lineIndex].insert(0, [value, y])
Но я получаю эту ошибку:
Файл "source.py", строка 31, в значении read_values = десятичное число (значения [0]) IndexError: список индексов вне диапазона
Я ценю любой тип справки.