Как преобразовать string в обычный массив с элементами
Это игра в пятнашки, мне автоматически генерируется произвольная доска, но проблема в том, что это строка. Например, сгенерировалась эта строка
------------------
[' 3', ' 8', ' 1']
[' 7', ' ', ' 5']
[' 6', ' 4', ' 2']
------------------
Хотел бы это преобразовать в одномерный массив. Например в это,
[' 3', ' 8', ' 1',' 7', ' ', ' 5',' 6', ' 4', ' 2']
чтобы потом мог обращаться к каждому элементу массива.
Вот как генерируется эта доска
def __str__(self):
symbols = [tile_to_string(x) for x in self.__tiles]
msg = '-'*self.__size*6+'\n'
for row in range(self.__size):
msg +=str(symbols[row*self.__size:row*self.__size+self.__size])
msg += '\n'
msg += '-'*self.__size*6
return msg
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
import re
str = """------------------
[' 3', ' 8', ' 1'][' 7', ' ', ' 5'][' 6', ' 4', ' 2']
------------------"""
print(re.findall(r"(?<=')\s*\d*(?=')", str))
[' 3', ' 8', ' 1', ' 7', ' ', ' 5', ' 6', ' 4', ' 2']