Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 求这个矩阵的对角线_Python_Search_Word_Diagonal - Fatal编程技术网

Python 求这个矩阵的对角线

Python 求这个矩阵的对角线,python,search,word,diagonal,Python,Search,Word,Diagonal,我正在尝试创建一个函数,该函数将从列表中的列表中获取对角线,也就是我的单词搜索难题的矩阵 def get_left_up (start_x, start_y, board): word = [] for row in range (start_x, -1,-1): for col in range (start_y,-1, -1): word.append(board[row][col]) word = ''.join(word) return word get_lef

我正在尝试创建一个函数,该函数将从列表中的列表中获取对角线,也就是我的单词搜索难题的矩阵

def get_left_up (start_x, start_y, board):
word = []
for row in range (start_x, -1,-1):
    for col in range (start_y,-1, -1):
        word.append(board[row][col])
word = ''.join(word)
return word

get_left_down (start_x, start_y, board):
word = []
for row in range (start_x,len(board)):
    for col in range (start_y,-1,-1):
        word.append(board[row][col])
word = ''.join(word)
return word

def get_right_up (start_x, start_y, board):
word= []
for row in range (start_x,-1,-1):
    for col in range (start_y,len(board)):
        word.append(board[row][col])
word = ''.join(word)
return word

def get_right_down (start_x, start_y, board):
word = []
for row in range (start_x, len(board)):
    for col in range (start_y,len(board)):
      word.append(board[row][col])
word = ''.join(word)
return word

到目前为止,那些我应该处理的功能。然而,有点不对劲。我打算把第一个字母的坐标作为参数,从搜索到的单词匹配到棋盘上,并从对角线的每个方向连接字符

对于右下对角线,您需要在同一迭代中增加x-和y-值,而不是循环特定行的所有列条目

def get_right_down (start_x, start_y, board):
   word = []
   col = start_y
   for row in range (start_x, len(board)):
      if col >= len(board):
         break
      word.append(board[row][col])
      col = col + 1
   return ''.join(word)

您应该只有一个同时更新列和行号的循环,而不是两个重叠循环。您可以使用
while
循环,测试您是否留在板上。