附近元件I定義n x n
陣列的bool的是這樣的:Python的切片分配改變列表
grid = [[False for x in range(n)] for x in range(n)]
此功能設置該網格的矩形區域到狀態(真或假)
def set_region(grid, points, state):
x1, y1, x2, y2 = points
row = [state] * (x2 - x1 + 1)
for y in range (y1, y2 + 1):
grid[y][x1:x2] = row
地區由2個角點定義(x1, y1)
和(x2, y2)
y
對應於行,x
是列
當我使用這個功能,整個區域設置爲True
,它工作正常,但是當我試圖將其更改爲False
,它的變化,但變化的元素之後行下一個元素成爲True
實施例:
n = 100;
grid = [[False for x in range(n)] for x in range(n)]
points = 57, 4, 58, 5
set_region(grid, points, True)
assert (grid[4][57] and grid[4][58] and grid[5][57] and grid[5][58]) == True
assert (grid[4][59] or grid[5][59]) == False
set_region(grid, points, False)
assert (grid[4][57] and grid[4][58] and grid[5][57] and grid[5][58]) == False
assert (grid[4][59] or grid[5][59]) == False
最後斷言特此失敗。爲什麼?
我添加+1範圍()參數,因爲它是獨佔的,我需要包含值 –