我想问一下如何检查我的2D数组是否针对字符串重复值?
//2d array
sudokuBoard=[[0 for sudokuRow in range(0,int(boardSize))] for sudokuColumn in range(0,int(boardSize))]
2D数组将生成一个3x3表,如下所示:
0|0|0
0|0|0
0|0|0
我如何确保当我在上表中输入一个值时,它会检查值位置行和列是否有重复值?
例如,如果我输入" 0"进入表格会有错误。
答案 0 :(得分:1)
试试这个:
def inBoard(value):
for row in sudokuBoard:
if value in row:
return True
return False
有了这个,你可以这样做:
if inBoard(3):
print "already in board"
else:
print "well played"
答案 1 :(得分:1)
首先,您需要访问您的列,因此您可以使用zip(*sudokuBoard)
执行该作业,然后为了插入值,您必须检查是否存在适当的行和列中的值!请注意,您的行包含在sudokuColumn
!
columns=map(list,zip(*sudokuBoard))
sudokuBoard=[[0 for sudokuRow in range(0,int(boardSize))] for sudokuColumn in range(0,int(boardSize))]
def insert_value(your_list,value,row,col):
if value not in columns[col] and value not in your_list[row]:
your_list[row][col]=value
else:
raise ValueError("you can not insert a duplicate value !!")