2 boyutlu bir numpy dizisinde çevresindeki 'hücrelerin' değerlerini alması gereken bir Python (2.7) sınıfı içinde işlevim var. İndeks aralık dışı ise, değerin Hiçbiri olarak ayarlanması gerekirdi.Sayısal dizi dizini mevcut değilse hiçbiri ayarlama
Bunu, 8 try/catch ifadesi yazmadan veya birden fazla x kullanmadan yazmanın bir yolunu bulmaya çalışıyorum. Her ikisi de işe yarayacak olsa da, çok iyi yapılandırılmış görünmüyorlar ve bunu yapmanın daha basit bir yolu olmalı diye düşünüyorum - Muhtemelen bu konuda tamamen yanlış bir şekilde düşündüm. Herhangi bir yardım çok takdir edilecektir.
# This will return a dictionary with the values of the surrounding points
def get_next_values(self, column, row):
if not (column < self.COLUMNS and row < self.ROWS):
print "Invalid row/column."
return False
nextHorizIsIndex = True if column < self.COLUMNS - 2 else False
nextVertIsIndex = True if row < self.ROWS - 2 else False
n = self.board[column, row-1] if column > 0 else None
ne = self.board[column+1, row-1] if nextHorizIsIndex else None
e = self.board[column+1, row] if nextHorizIsIndex else None
se = self.board[column+1, row+1] if nextHorizIsIndex and nextVertIsIndex else None
s = self.board[column, row+1] if nextVertIsIndex else None
sw = self.board[column-1, row+1] if nextVertIsIndex else None
w = self.board[column-1, row] if row > 0 else None
nw = self.board[column-1, row-1] if 0 not in [row, column] else None
# debug
print n, ne, e, se, s, sw, w, nw
Negatif indeks sargı etrafına dikkat edin ...! – wim
Bana hiç bulaşmamıştı, teşekkürler! – Adam