Одним из решений является объявление «лучшей» функции приведения и вызов ее вместо int
в map
:
matrix = [['1', '2', '3'], ['4', 'a', 'n']]
def int_with_default(value, default="NaN"):
try:
return int(value)
except ValueError:
return default
matrix = [list(map(int_with_default, arr)) for arr in matrix]
Выходная матрица будет [[1, 2, 3], [4, 'NaN', 'NaN']]
. Обратите внимание, что вы также можете использовать math.nan
вместо этой произвольной строки, которую я использовал в качестве примера.