Я представляю сетку с 2D-списком в python. Я хотел бы выбрать точку (x, y) в списке и определить ее местоположение... правый край, верхний левый угол, где-то посередине...
В настоящее время я проверяю так:
# left column, not a corner
if x == 0 and y != 0 and y != self.dim_y - 1:
pass
# right column, not a corner
elif x == self.dim_x - 1 and y != 0 and y != self.dim_y - 1:
pass
# top row, not a corner
elif y == 0 and x != 0 and x != self.dim_x - 1:
pass
# bottom row, not a corner
elif y == self.dim_y - 1 and x != 0 and x != self.dim_x - 1:
pass
# top left corner
elif x == 0 and y == 0:
pass
# top right corner
elif x == self.dim_x - 1 and y == 0:
pass
# bottom left corner
elif x == 0 and y == self.dim_y - 1:
pass
# bottom right corner
elif x == self.dim_x - 1 and y == self.dim_y - 1:
pass
# somewhere in middle; not an edge
else:
pass
Где у меня есть какая-то функция, которая что-то делает после определения местоположения
dim_x и dim_y — размеры списка.
Есть ли лучший способ сделать это без такого количества операторов if-else? Что-то эффективное было бы хорошо, так как эта часть логики вызывается пару миллионов раз... это для имитации отжига.
Заранее спасибо. Кроме того, как было бы лучше сформулировать заголовок?
x=0, y=0
. Внизу слеваx=0, y=screen_height
. - person jfs   schedule 26.09.2009