Как определить размеры матрицы после ввода ее с клавиатуры
m = int(input())
n = int(input())
a = []
for i in range(m):
line = input()
a_str = line.split()
a.append(a_str)
Как обойтись без ввода m, n?
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
ну вам же какой-то разделитель всё равно нужен, ну можно сделать так:
с помощью
row = list(map(int, input().split()))
можно получить список чисел введённых через пробел
а дальше выработать критерии выхода из цикла ввода строк матрицы, например если кол-во цифр текущего ряда не равно кол-ву цифр предыдущего ряда
matrix = []
while True:
# считать строку матрицы
row = list(map(int, input().split()))
# если введено только одно значение и оно '0'
# или если кол-во чисел текущего ряда отличается от ряда в матрице - выйти
if len(row) == 1 and row[0] == 0 or len(matrix) > 0 and len(matrix[0]) != len(row):
break
# добавить строку в матрицу
matrix.append(row)
# вывести размер матрицы
print(f'matrix size: {len(matrix[0])}x{len(matrix)}')
Автор решения: belo4ya
→ Ссылка
Можно считывать ввод построчно, до первой пустой строки:
i = 0
row = str(input(f"{i}: "))
matrix = []
while row:
matrix.append([int(i) for i in row.split()])
i += 1
row = str(input(f"{i}: "))
print(matrix)
print("n =", len(matrix))
print("m =", len(matrix[0]))
0: 1 2 3
1: 4 5 6
2: 7 8 9
3:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
n = 3
m = 3
Единственное при работе с вводом нужно обработать множество нюансов.