У меня есть матрица;
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))
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]