Если вы собираетесь читать файл для создания 2D-массива, вы должны включить определение длины последней строки в создание массива, чтобы вам не приходилось читать файл дважды.
Я предполагаю, что мы заранее не знаем, сколько строк (имеется в виду, что мы не знаем, какова длина каждой стороны матрицы).Я также предполагаю, что ваш файл называется file.txt
.
. То, что мы хотим, это рабочий список списков.Прочитав весь файл, мы можем вернуться и добавить завершающие нули.Здесь будет полезен метод split()
Python strings, потому что без аргументов этот метод использует пробел в качестве разделителя.Вот простой пример с вашим файлом:
>>> with open('file.txt') as file:
... for line in file:
... print(line.split())
...
['5']
['10', '7']
['1', '3', '12']
Следующий код сохраняет каждый из этих списков как элементы списка с именем rows
:
rows = []
with open('file.txt') as file:
for line in file:
rows.append(line.split())
Теперь осталось только:проверьте длину последней строки, добавьте нули в конец каждого списка и распечатайте ее в удобном для вас формате.Вот полное решение:
rows = []
with open('file.txt') as file:
for line in file:
rows.append(line.split())
size = len(rows[-1])
for i in range(len(rows)):
rows[i] = rows[i] + ['0'] * (size - len(rows[i]))
for row in rows:
print(','.join(row))