我有一个矩阵;
matrix=""" 1 2 3
4 5 6
7 8 9"""
我想找到给定输入的所有邻居而不使用第三方库,例如输出应该类似于第一行和第二列,代表2的数量(顺序不重要);
[(2,1),(2,5),(2,3)]
我已使用以下代码找到了邻居的坐标,但找不到邻居:
lst=[i.strip().split() for i in matrix.splitlines()]
lst1=[]
def main(x,y):
neighbors = [(x+a[0], y+a[1]) for a in [(-1,0), (1,0), (0,-1), (0,1)] if ( (0 <= x+a[0] < len(lst[0])) and (0 <= y+a[1] < len(lst)))]
lst1.append(((x,y),neighbors))
答案 0 :(得分:0)
def neighbours(pos, matrix):
rows = len(matrix)
cols = len(matrix[0]) if rows else 0
for i in range(max(0, pos[0] - 1), min(rows, pos[0] + 2)):
for j in range(max(0, pos[1] - 1), min(cols, pos[1] + 2)):
if (i, j) != pos:
yield matrix[i][j]