L = ['7', ' ', ' ', ' ', ' ', '1', '2', ' ', ' ', ' ', ' ', '1', ' ', ' ', ' ', ' ',
'1', '4', '\n', '2', ' ', ' ', ' ', ' ', '1', '3', ' ', ' ', ' ', ' ', '8', ' ',
' ', ' ', ' ', '1', '1', '\n', '1', '6', ' ', ' ', ' ', ' ', '3', ' ', ' ', ' ',
' ', '1', '0', ' ', ' ', ' ', ' ', '5', '\n', '9', ' ', ' ', ' ', ' ', '6', ' ',
' ', ' ', ' ', '1', '5', ' ', ' ', ' ', ' ', '4']
Мы объединяем весь список в строку и затем разделяем его на пробелы.
data = ''.join(L)
print(data)
data = data.split(' ')
print(data)
Результат будет выглядеть следующим образом:
7 12 1 14
2 13 8 11
16 3 10 5
9 6 15 4
['7', '', '', '', '12', '', '', '', '1', '', '', '', '14\n2', '', '', '', '13', '',
'', '', '8', '', '', '', '11\n16', '', '', '', '3', '', '', '', '10', '', '', '',
'5\n9', '', '', '', '6', '', '', '', '15', '', '', '', '4']
Похоже, мыдолжны отделить '\n'
. Давайте добавим пробелы вокруг символа новой строки перед его разбиением.
data = ''.join(L).replace('\n', ' \n ')
data = data.split(' ')
print(data)
Результат выглядит следующим образом
['7', '', '', '', '12', '', '', '', '1', '', '', '', '14', '\n', '2', '', '', '',
'13', '', '', '', '8', '', '', '', '11', '\n', '16', '', '', '', '3', '', '', '',
'10', '', '', '', '5', '\n', '9', '', '', '', '6', '', '', '', '15', '', '', '',
'4']
Теперь мы создадим новый список, зацикливая этот промежуточный результат. Если мы встретим ''
, мы проигнорируем его, '\n'
будет взят как есть, а все остальное будет преобразовано в целое число.
result = []
for value in data:
if value != '':
value = value if value == '\n' else int(value)
result.append(value)
print(result)
Теперь вы получите желаемый результат.
[7, 12, 1, 14, '\n', 2, 13, 8, 11, '\n', 16, 3, 10, 5, '\n', 9, 6, 15, 4]
С пониманием списка последняя часть может быть написана как одна строка.
result = [value if value == '\n' else int(value) for value in data if value]
Мы могли бы даже собрать все вместе.
result = [value if value == '\n' else int(value) for value in ''.join(L).replace('\n', ' \n ').split(' ') if value]