我需要編寫一個函數def amountofNeighbours(row, column)
,它打印矩陣中某個元素的鄰居數量。例如,給定矩陣[[2, 3, 4], [5, 6, 7], [8, 9, 10]]
,元素2在位置[0] [0]處有三個相鄰元素,而在位置[1] [1]處元素6有八個相鄰元素。我不確定處理這樣的問題的最佳方式是什麼。我經歷了所有的準備去了,這給了我下面的:計算矩陣中鄰居數量的最佳方法是什麼?
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.任何人都有改進的想法?
這不起作用。沒有足夠的參數。如果你擺脫了循環,我和j沒有意義。 – saulspatz
我知道。 'i'和'j'沒用,應該改成'row'和'column'。 –
然後你會得到像'row == row - 1'這樣的條件。你需要4個參數。兩個用於矩陣的尺寸和兩個用於單元的座標。 – saulspatz