Преобразуйте матрицу строк в матрицу целых чисел в python

#python #string #matrix #integer

Вопрос:

у меня следующая проблема, я генерирую матрицу с этим кодом

 g = open("text.txt", "r")
inte=int(g.readline())
for x in itertools.islice(g, inte):
  maze.append(x.rstrip('n').split(' '))
print(maze)
 

это производит что-то вроде этого

 [['1,', '0,', '0,', '0'], ['1,', '1,', '0,', '1'], ['1,', '1,', '0,', '0'], ['0,', '1,', '1,', '1']]
 

но я бы хотел, чтобы вместо этого получилось что-то подобное

 [[1, 0, 0, 0], [1, 1, 0, 1], [1, 1, 0, 0], [0, 1, 1, 1]]
 

Ответ №1:

Как насчет этого? Было бы неплохо, если бы вы заменили строку, содержащую символ, который не является числом, на пустое пространство перед приведенным ниже оператором.

 list(map(lambda x: list(map(lambda y: int(y.replace(',', '')), x)), a))