【问题标题】:How to find the neighbors of a matrix cell如何找到矩阵单元的邻居
【发布时间】:2019-05-26 11:22:26
【问题描述】:

我有一个矩阵;

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

【问题讨论】:

  • 你试过什么?数据是如何传入的?有代码吗?
  • 矩阵实际是如何存储的?

标签: python arrays python-3.x matrix


【解决方案1】:
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]

【讨论】:

    猜你喜欢
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    相关资源
    最近更新 更多