Преобразовать данные из файла в трехмерный список Python
Есть файл с таким вот содержанием:
3 3 3
1..
oo.
...
ooo
..o
.oo
ooo
o..
o.2
Нужно представить это в трехмерном списке:
[[['3', '3', '3'], ['1', '.', '.'], ['o', 'o', '.'], ['.', '.', '.']], [['o', 'o', 'o'], ['.', '.', 'o'], ['.', 'o', 'o']], [['o', 'o', 'o'], ['o', '.', '.'], ['o', '.', '2']]]
with open("INPUT.txt", "r") as in_file:
arr = [list(line.strip()) for line in in_file if line != "\n"]
print(arr)
дошел пока только до этого, но выдает не то
[['3', ' ', '3', ' ', '3'], ['1', '.', '.'], ['o', 'o', '.'], ['.', '.', '.'], ['o', 'o', 'o'], ['.', '.', 'o'], ['.', 'o', 'o'], ['o', 'o', 'o'], ['o', '.', '.'], ['o', '.', '2']]
Ответы (1 шт):
Автор решения: Виктор Иванов
→ Ссылка
Очень топорно, но у меня получилось это сделать так:
with open("INPUT.txt", "r") as in_file:
tmp = []
arr = []
lines = in_file.readlines()
for i in lines:
line = list(i.strip())
if line != []:
tmp.append(line)
if line == []:
arr.append(tmp)
tmp = []
arr.append(tmp)
for i in arr:
for j in i:
for x in j:
if x == ' ':
j.remove(' ')
print(arr)