这是我在Sudoku上工作的python代码,在其中我必须以2d数组形式输入输入并将以下输入更改为列表
sudokuB = [
[0, 0, 3, 0, 6, 9, 8, 0, 0],
[0, 0, 0, 0, 0, 0, 9, 0, 0],
[2, 7, 0, 0, 0, 0, 0, 0, 3],
[0, 9, 0, 0, 0, 7, 0, 0, 0],
[0, 2, 8, 0, 1, 0, 0, 6, 0],
[1, 0, 0, 0, 3, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 7],
[5, 4, 0, 6, 0, 0, 0, 0, 2],
[0, 0, 0, 4, 0, 0, 0, 0, 0]
]
i want to convert this 2d matrix into following format
['0', '0', '3', '0', '6', '9', '8', '0', '0']
['0', '0', '0', '0', '0', '0', '9', '0', '0']
['2', '7', '0', '0', '0', '0', '0', '0', '3']
['0', '9', '0', '0', '0', '7', '0', '0', '0']
['0', '2', '8', '0', '1', '0', '0', '6', '0']
['1', '0', '0', '0', '3', '0', '0', '0', '0']
['0', '0', '0', '0', '0', '0', '0', '0', '7']
['5', '4', '0', '6', '0', '0', '0', '0', '2']
['0', '0', '0', '4', '0', '0', '0', '0', '0']
您要问的不是2d到1d列表转换。您正在要求元素转换(从int到str)。您可以使用以下功能进行操作。 N.B.也可以使用列表理解来完成,但是此解决方案更倾向于可读性而非简洁性:
def string_conversion(sudokuB):
"""Converts list elements to string."""
sudokuB_str = []
for lst in sudokuB:
elems = []
for elem in lst:
elems.append(str(elem))
sudokuB_str.append(elems)
return sudokuB_str
现在使用该功能:
sudokuB = [
[0, 0, 3, 0, 6, 9, 8, 0, 0],
[0, 0, 0, 0, 0, 0, 9, 0, 0],
[2, 7, 0, 0, 0, 0, 0, 0, 3],
[0, 9, 0, 0, 0, 7, 0, 0, 0],
[0, 2, 8, 0, 1, 0, 0, 6, 0],
[1, 0, 0, 0, 3, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 7],
[5, 4, 0, 6, 0, 0, 0, 0, 2],
[0, 0, 0, 4, 0, 0, 0, 0, 0]
]
sudokuB_str = string_conversion(sudokuB)
print(sudokuB_str)
这将返回:
[['0', '0', '3', '0', '6', '9', '8', '0', '0'],
['0', '0', '0', '0', '0', '0', '9', '0', '0'],
['2', '7', '0', '0', '0', '0', '0', '0', '3'],
['0', '9', '0', '0', '0', '7', '0', '0', '0'],
['0', '2', '8', '0', '1', '0', '0', '6', '0'],
['1', '0', '0', '0', '3', '0', '0', '0', '0'],
['0', '0', '0', '0', '0', '0', '0', '0', '7'],
['5', '4', '0', '6', '0', '0', '0', '0', '2'],
['0', '0', '0', '4', '0', '0', '0', '0', '0']]