You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么这段Python代码会出现String index out of range索引错误

报错底层逻辑说明

你的代码触发报错的核心原因是多了一层多余的下标访问,对空字符串执行了超出长度的下标取值,具体执行过程拆解如下:

  • 你定义的board是二维列表结构,遍历得到的每个row已经是一维列表,row[0]取到的就是当前行的第一个元素,本身就是字符串类型,不再是列表
  • 第一次循环取第一行的row[0]得到字符串'X',长度为1,此时你再取[0]能正常拿到字符'X',不会报错
  • 第二次循环遍历到第二行['','','O','O'],row[0]取到的是空字符串'',长度为0,此时执行row[0][0]相当于试图取空字符串的第0位字符,直接触发String index out of range越界报错
修正方案

如果你的需求是仅打印整个二维矩阵第一行的第一个元素,不需要写循环,直接通过两层下标取值即可:

print(board[0][0])

如果你是要在循环场景下验证逻辑,需要先判断字符串长度再取值,避免空字符串越界:

for row in board:
    first_item = row[0]
    if len(first_item) > 0:
        print(first_item[0])

内容的提问来源于stack exchange,提问作者Lassom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:06:03