Python:获取与BFR列表中特定数字相邻的数字

时间:2017-05-10 21:28:28

标签: python

我可以获取列表或数组中特定数字旁边的数字吗?所以对于下面的例子:

goal_state = [[1,2,3],
              [4,5,6],
              [7,8,0]]  

如果我问的是与5相邻的数字,我应该得到2,6,4,8。如果我问的是哪个数字与0相邻,我应该得到6和8.谢谢

1 个答案:

答案 0 :(得分:0)

goal_state = [[1,2,3],
          [4,5,6],
          [7,8,0]]  

goal=np.array(goal_state)
#i,j are row and column position of the number
def neighbors (i,j):
    neighbors=[]

    if j<goal.shape[1]-1:
        neighbors.append(goal[i,j+1])
    if i>0:
        neighbors.append(goal[i-1,j])
    if j>0:
        neighbors.append(goal[i,j-1])
    if i<goal.shape[0]-1:
        neighbors.append(goal[i+1,j])
    return neighbors
print neighbors(2,0)