Ввод двумерного списка из консоли
В консоль через запятую вводятся символы в формате i K j, например:
1 -> 2, 2 ? 1;3, 3 <- 4, 4 V 5, 5 !
Концом такой строки всегда служит !. Надо записать это в двумерный список размера NxM, где N это количество команд (в примере выше это 5 операций), M равно 3, где первая ячейка это число, вторая символ либо набор символов, третья число. Пример выходной матрицы:
1 2 3 4 5
-> ? <- V !
2 1;3 4 5
Можно использовать сторонние библиотеки.
Как реализовать такое разбиение строки на массив?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
import re
def parse_str(data_str):
res = []
for x in re.split(",\s*", data_str):
tmp = x.split()
res.append(tmp if len(tmp) == 3 else tmp + [""])
return res
data_str = """1 -> 2, 2 ? 1;3, 3 <- 4, 4 V 5, 5 !"""
res = list(map(list, zip(*parse_str(data_str))))
результат:
In [72]: res
Out[72]:
[['1', '2', '3', '4', '5'],
['->', '?', '<-', 'V', '!'],
['2', '1;3', '4', '5', '']]