@kyurem_bog

Как вывести соседние элементы в матрице?

Дана матрица. Напечатать те ее элементы, все соседи которых по горизонтали, вертикали и диагонали: а) больше этого элемента, б) меньше этого элемента. Как мне указать в условии что надо выводить только те которые меньше или больше элемента
import random
def start():
        print("Дана матрица")        
        def creatArray():
            r = 0
            print('Input first index matrix: ')
            x = int(input())
            print('Input second index matrix: ')
            y = int(input())
            array = []
            for i in range(x):
                array.append([])
                for j in range(y):
                    array[i].append(random.randint(0,100))
                    r += 1  
            return array
        g= creatArray()
        def printMatrix(g): 
           for row in g: 
              for x in row: 
                  print ( "{:3d}".format(x), end = "" ) 
              print ()
        printMatrix (g)
        print("Выбирите a или b")
        a= input()        
        if a == "a":
                def in_bounds(i, j, g):
                        return 0 <= i < len(g) and 0 <= j < len(g[0])
                def neighbors(g):
                        return [[g[i + di][j + dj] for di in (-1, 0, 1) for dj in (-1, 0, 1) if in_bounds(i + di, j + dj, g) and (di != 0 or dj != 0)]
                                for i in range(len(g)) for j in range(len(g[0]))]
                print(neighbors(g))
                #именно эта часть,  выводит соседние элементы каждого элемента.
                #но нужно сделать так чтобы выводила только те которые больше либо меньше этого элемента
 
        elif a == "b":
            s = 0 
            for row in matrix: 
               s += sum(row) #просто заглушка
            print (s)
        else:
            print('Other')
start()
while True:
    flag = input('Ещё раз? [да/нет]: ')
 
    if flag == 'да':
            start()
    else:
        break
  • Вопрос задан
  • 1323 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы