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

GUIzero报'int' object is not subscriptable错误 强制转字符串仍未解决

错误产生原因
  • 你初始化leaderboard_array的写法得到的是一维数组,而非预期的二维数组。["***", 0] * 5会直接将列表内的元素重复5次,最终生成的结构为["***", 0, "***", 0, "***", 0, "***", 0, "***", 0]
  • 当代码执行leaderboard_array[1]时,取到的元素是整数0,后续对这个整数执行[0]下标访问操作,就触发了'int' object is not subscriptable的类型错误,和字符串强制转换逻辑无关。
修复方法

第一步:修正二维数组初始化逻辑

将数组初始化代码改为列表推导式写法,生成包含5个二元子列表的二维数组:

leaderboard_array = [["***", 0] for _ in range(5)]

注意不要用[["***", 0]] * 5的写法,这种写法会生成5个指向同一块内存的子列表,修改任意一个子列表的元素都会同步修改所有子列表,出现预期外的问题。

第二步(可选):简化重复的控件生成逻辑

你可以用循环批量生成Text控件,避免写5段重复代码:

leaderboard_array = [["***", 0] for _ in range(5)]
# 用列表存储所有Text控件,后续修改值也可以直接通过下标操作
leaderboard_boxes = []
for i in range(5):
    box = Text(leaderboard_window)
    box.value = f"{leaderboard_array[i][0]}: {leaderboard_array[i][1]}"
    leaderboard_boxes.append(box)

这里用了Python f-string格式化字符串,不需要手动嵌套多层str()转换,语法更简洁。


内容的提问来源于stack exchange,提问作者Let A be the Unknown

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:12:04