如何找到矩阵单元的邻居

时间:2018-12-28 16:57:10

标签: python arrays python-3.x matrix

我有一个矩阵;

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))

1 个答案:

答案 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]