如何修复:Python 中的 "list index out of range ..."?

How to fix : "list index out of range ..." in Python?

我试图在 Python 中制作康威的生命游戏。我想测试这个盒子是不是边框盒子,勾选四周的盒子等等

我已经尝试将此测试放在评论中并随机化存活的邻居细胞数量。错误消失了,但另一个问题来了 这不是这个问题的主题。

newArr = arr
    rows = 0
    while rows < maxRows :
        cols = 0
        while cols < maxCols :
            if cols != 0 and cols != maxCols and rows != 0 and rows != maxRows :
                checks = 0
                if arr[cols-1][rows-1] == '██' :
                    checks += 1
                if arr[cols][rows-1] == '██' :
                    checks += 1
                if arr[cols+1][rows-1] == '██' :
                    checks += 1
                if arr[cols+1][rows] == '██' :
                    checks += 1
                if arr[cols+1][rows+1] == '██' :
                    checks += 1
                if arr[cols][rows+1] == '██' :
                    checks += 1
                if arr[cols-1][rows+1] == '██' :
                    checks += 1
                if arr[cols-1][rows] == '██':
                    checks += 1

                if arr[rows][cols] == '  ' and checks == 3 :
                    newArr[rows][cols] == '██'
                if arr[rows][cols] == '██' and checks > 2 and checks < 3 :
                    newArr[rows][cols] == '██'
                else :
                    newArr[rows][cols] == '  '
            cols += 1
        rows += 1
    arr = newArr

这里是错误

Traceback (most recent call last):
  File "C:/Users/acer/AppData/Local/Programs/Python/Python37/Test.py", line 55, in <module>
    if arr[cols+1][rows-1] == '██' :
IndexError: list index out of range
for row in range(1, maxRows - 1):
    for col in range(1, maxCols - 1):
        aliveNeighbours = 0
        for i in range(-1, 2):
            for j in range(-1, 2):
                if arr[i + row][j + cols] = 'Your symbol' and (i != 0 or j != 0):
                    aliveNeighbours += 1
    #Then check for various conditions for conways' game of life

这会检查单元格周围是否存在活着的邻居。
我们不需要边缘的行和列。

>>> for i in range(-1, 2):
...     for j in range(-1, 2):
...             if i != 0 or j != 0:
...                     print(i, j)
... 
-1 -1
-1 0
-1 1
0 -1
0 1
1 -1
1 0
1 1
>>> 

这会检查每个单元格,除了它自己的单元格,即 0, 0。
如果有任何可以改进的地方,请发表评论。