Матричный ввод с Python 3 - PullRequest
0 голосов
/ 08 мая 2018

Я собираюсь получить входные данные для моего скрипта Python при использовании канала. Первые два элемента - это номера столбцов и строк в матрице, за которыми следуют элементы матрицы.

cat input | python3 matrix.py

Проблема в том, что файл может содержать один матричный элемент в одной строке или всю строку матрицы в одной строке.

Написание программы на C для этого просто. Scanf () автоматически запускает новый ввод, как только он сталкивается с пробелом, будь то пробел или новая строка, но это не относится к python.

Рассмотрим следующие два входных файла:

Файл 1

2
2
1 2
3 4

Файл 2

2
2
1
2
3
4

и следующая функция ввода:

def getter():
    col = int(input())
    row = int(input())

    matrix = []
    for i in range(0, row):
        temp = input()
        matrix.append(temp)

Эта функция работает для файла 1, но не для файла 2. Но, если я изменю цикл на этот:

for i in range(0,row):
    temp = []
    for j in range(0,col):
        temp.append(int(input))
    matrix.append(temp)

Тогда это будет работать для файла 2, а не для файла 1.

Есть ли общий способ написания программы на python3, чтобы она работала с обоими файлами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...