首页 > 解决方案 > IndexError:从for循环为元组分配值时列表索引超出范围

问题描述

我正在尝试创建两组元组以用作棋盘方格颜色的坐标,但我似乎无法摆脱错误:“IndexError:列表索引超出范围”。

你知道为什么它会返回这个错误吗?

alpha = ["a","b","c","d","e","f","g"]

chessSquareBlack = []
chessSquareWhite = []

for i in range(8):
    for j in range(8):

        if ((i+1) % 2 == 0 and (j+1) % 2 != 0) or (i+1) % 2 != 0 and (j+1) % 2 == 0:
            chessSquareBlack.append(((alpha[i]),(j+1)))

        elif ((i+1) % 2 != 0 and (j+1) % 2 == 0) or (i+1) % 2 == 0 and (j+1) % 2 != 0:
            chessSquareWhite.append(((alpha[i]), (j+1)))

标签: pythonfor-loopappend

解决方案


您的列表alpha的长度为 7,但您最多迭代到 7。由于 python 从 0 开始索引,您会得到一个IndexError.

只需更改range(8)range(7),您就可以了。

但是,应该说,在您的第二个白色方块的 if 语句中,您的条件有问题,因为它从未真正打开,因为条件总是false.


推荐阅读