2017-05-10 15 views
0

リストまたは配列内の特定の番号に隣接する番号を取得できますか?したがって、以下の例の場合:Python:BFRのリスト内の特定の番号に隣接する番号を取得する

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

5に隣接する数字を尋ねると、2,6,4,8を取得する必要があります。そして、0に隣接する数字を尋ねると、6と8を得るべきです。ありがとう

+0

numpyを使用していますか? –

+2

''リストや配列の特定の番号に隣接する数字を取得できますか? 「はい、できます。しかし、何を試しましたか? – RafaelC

+0

入力とは何ですか? (リストインデックスを持つタプル?)出力は何ですか? (1-dリスト?)いくつかのサンプルケースを追加してみてください。 – brianpck

答えて

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) 
関連する問題