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)))
wdd16617723 回答:IndexError:将值从for循环分配给元组时,列表索引超出范围

您的列表alpha的长度为7,但是您最多可以迭代7。由于python从0开始索引,因此您得到了IndexError

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

但是应该说,在第二个if语句的白色方块中,您的条件有问题,因为它永远不会被打开,因为条件始终为false

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

chessSquareBlack = []
chessSquareWhite = []

您可以检查列表“ alpha”的长度,而不是7或8,并在如下所示的for循环中使用它。这将是通用的,因此您不必每次都对其进行硬编码:

范围(len(alpha))

for i in range(len(alpha)):
    for j in range(len(alpha)):
    #enter code here
本文链接:https://www.f2er.com/3125274.html

大家都在问