Мне нужно написать функцию def amountofNeighbours(row, column)
, которая печатает количество соседей в определенном элементе в матрице. Например, учитывая матрицу [[2, 3, 4], [5, 6, 7], [8, 9, 10]]
, в элементе 2 в положении [0] [0] находятся три соседи, а в элементе 6 в положении [1] [1] имеется восемь соседей. Я не уверен, что лучший способ справиться с такой проблемой. Я прошел через все возможности, и это дало мне следующее:Лучший способ вычислить количество соседей в матрице?
def amountofNeighbours(row, column):
neighbours = 0
for i in range(row):
for j in range(column):
if i == 0 and j == 0 or i == 0 and j == column - 1:
neighbours = 3
elif i == row - 1 and j == 0 or i == row-1 and j == column - 1:
neighbours = 3
elif i > 0 and j == 0 or i == 0 and j > 0:
neighbours = 5
elif i == row - 1 and j > 0:
neighbours = 5
elif j == column - 1 and i > 0:
neighbours = 5
else:
neighbours = 8
return neighbours
Когда я назвал это с amountofNeighbours(1, 1)
он дал мне правильный ответ, а именно 3, но если бы я назвал его amountofNeighbours(2,2)
ответ должен быть 8, а это дало мне 3. У кого-то есть идея для улучшения?
Это не работает. Недостаточно параметров. Если вы избавитесь от циклов, i и j не имеют никакого значения. – saulspatz
Я знаю. 'i' и' j' бесполезны и должны быть изменены на 'row' и' column'. –
Затем вы получаете такие условия, как 'row == row - 1'. Вам нужно 4 параметра. Два для размеров матрицы и два для координат ячейки. – saulspatz