首页 > 解决方案 > 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

标签: pythonpython-3.7guizero

解决方案


leaderboard_array[1][0]正在索引的第二个项目leaderboard_array是 a 0(它是 a int)。我认为您的意思是让排行榜数组成为一个包含更多列表的列表,您可以通过leaderboard_array = [["***", 0]] * 5使用两组 []替换第 1 行来获得


推荐阅读