Python 对角线元素的差异
我有一块尺寸为4x4的板: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,否则返
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.