python - GUIzero:“'int' 对象不可下标”,变量强制为字符串
问题描述
我正在研究一段 GUIzero 代码,旨在将 2D 数组的值附加到选择的文本框小部件上。然而,尽管小部件值方程中的所有变量都被强制为字符串,但它仍然告诉我一个值是一个整数。
leaderboard_array = ["***", 0]*5
leaderboard_box1 = Text(leaderboard_window)
leaderboard_box1.value = str(str(leaderboard_array[0][0]) + ": " + str(leaderboard_array[0][1]))
leaderboard_box2 = Text(leaderboard_window)
leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1]))
leaderboard_box3 = Text(leaderboard_window)
leaderboard_box3.value = str(str(leaderboard_array[2][0]) + ": " + str(leaderboard_array[2][1]))
leaderboard_box4 = Text(leaderboard_window)
leaderboard_box4.value = str(str(leaderboard_array[3][0]) + ": " + str(leaderboard_array[3][1]))
leaderboard_box5 = Text(leaderboard_window)
leaderboard_box5.value = str(str(leaderboard_array[4][0]) + ": " + str(leaderboard_array[4][1]))
确切的错误代码是这样的: leaderboard_box2.value = str(str(leaderboard_array[1][0]) + ": " + str(leaderboard_array[1][1])) TypeError: 'int' object is not subscriptable
解决方案
leaderboard_array[1][0]
正在索引的第二个项目leaderboard_array
是 a 0
(它是 a int
)。我认为您的意思是让排行榜数组成为一个包含更多列表的列表,您可以通过leaderboard_array = [["***", 0]] * 5
使用两组 []替换第 1 行来获得
推荐阅读
- javascript - 在客户端执行过滤并在服务器端进行搜索
- java - 从 SCDF 启动任务时如何解决执行“java.lang.IllegalArgumentException: Invalid TaskExecution, ID 3”?
- swift - 过滤 Firebase 数据 SwiftUI
- apache-royale - apache Royale 现在支持双向数据绑定吗?
- html - 注册后欢迎电子邮件中的添加到日历按钮
- javascript - 不起作用,Javascript 在单击按钮之前验证文本输入
- shell - 是否有任何 Dart 资源可以将命令行字符串拆分为列表
论据? - amazon-web-services - AWS S3 CLI 在使用 mv 命令时创建多个目录
- javascript - 如何将表单变量和画布图片发送到 php 服务器?
- java - Hamcrest 检查值是否为空或空数组