Как найти соседей по матричной ячейке

1

У меня есть матрица;

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
    как на самом деле хранится матрица?
Теги:
arrays
python-3.x
matrix

1 ответ

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]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню