如何在2D数组中搜索元素

时间:2014-10-12 13:19:58

标签: python arrays

我想问一下如何检查我的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"进入表格会有错误。

2 个答案:

答案 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 !!")