python - 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)))
解决方案
您的列表alpha
的长度为 7,但您最多迭代到 7。由于 python 从 0 开始索引,您会得到一个IndexError
.
只需更改range(8)
为range(7)
,您就可以了。
但是,应该说,在您的第二个白色方块的 if 语句中,您的条件有问题,因为它从未真正打开,因为条件总是false
.
推荐阅读
- debugging - CLion 调试:lldb 附加到进程,断点为灰色,表示没有可执行文件
- xml - 遇到特定节点时将节点内容一分为二
- r - 在 Latex (Sweave) 文档中引用 R 对象?
- javascript - document.querySelector 处理多个值
- c - 我无法理解教授关于 malloc 的代码
- scala - 将 IndexedColorMap 类型转换为 ColorMap
- c# - 如何从正在运行的 asp.net 网站上的 SQL 表中更改列名?
- python - 这些 os.popen 命令会并行运行吗?
- react-native - 如何使用 react-native 渲染一个大的动态列表视图
- sql - 3 按列查询并新建表