Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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_Python 3.x - Fatal编程技术网

Python 对角线元素的差异

Python 对角线元素的差异,python,python-3.x,Python,Python 3.x,我有一块尺寸为4x4的板: board=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]] board = [1,0,0,0] [0,1,0,0] [0,0,1,0] [0,0,0,1] board2= [0,0,1,0] [1,0,0,0] [0,0,1,0] [1,0,0,0] 我必须在这块板上做对角线检查,即如果元素彼此成对角线,它应该返回False,否则返

我有一块尺寸为4x4的板:

board=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]

board = [1,0,0,0]
        [0,1,0,0]
        [0,0,1,0]
        [0,0,0,1]

board2= [0,0,1,0]
        [1,0,0,0]
        [0,0,1,0]
        [1,0,0,0]
我必须在这块板上做对角线检查,即如果元素彼此成对角线,它应该返回False,否则返回True

我想得到元素的坐标值为“1”,但想不出实现其余元素的逻辑

def diagonal(trialboard):
    coordinates=[]
    for i in range(0,len(trialboard)):
        for j in range(0 ,len(trialboard)):
            if trialboard[i][j]==1:
                a=[i,j]
                coordinates.append(a)

任何帮助都将不胜感激。

我不完全确定我是否明白你的意思

我必须在这块板上做对角线检查,即如果元素彼此成对角线,它应该返回False,否则返回True

如果我没有错,那么您可以检查它是否与第I个子列表的第I个元素成对角线,该元素应为1。见:

board=[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]

然后


这也是一种更有效的方法,因为您不需要迭代每一个[i][j]在两个嵌套的for语句中配对。您只需检查对角线值。

您期望的是什么?电路板会发生变化?不太理解您的问题有点困惑。称为对角线的函数如果是对角线返回False,如果不是对角线返回True。是这样吗?元素之间的对角线意味着什么?您是指符号吗公制矩阵?@atline..很抱歉误解。我需要找出对角线元素之间的abs差异,如果diff==0,则返回False,否则返回True。是的。@MichaelButscher
def diagonal(trialboard): #I assume trialboard is the list such as "board"...
  if len(trialboard[0])!=len(trialboard) return true #if the matrix is not  
                                                     #square it cannot have a
                                                     #diagonal
   #Here I also assume the sublists all have the same length, but this is just
   #for demonstration

  for i in range(0,len(trialboard)):
       if (trialboard[i][i] !=1) : return true  #is not diagonal (as you specified, 
                                                #returns true)
       if (i==len(trialboard)-1) : return false #it didn't fail until the last element,
                                                #then it is 
                                                #diagonal.