turns = [4, 6, 2, 8, 1, 9, 5, 5, 3, 7, 6, 8, 2, 4]
turns.append([1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4])
turns.append([4, 6, 2, 8, 1, 9, 6, 5, 3, 7, 6, 8, 2, 4])
turns.append([0, 0, 26, 24, 3, 7, 5, 4, 25, 25, 21, 21, 21, 21])
turns.append([0, 0, 0, 0, 7, 3, 8, 2, 0, 0, 29, 29, 29, 29])
turns.append([0, 0, 0, 0, 26, 24, 0, 0, 0, 0, 0, 0, 0, 0])
arrayValue = turns[j][i]
if arrayValue == turnCurrently:
Error Message:
Traceback (most recent call last):
File "D:/a45d32f947055690c690d94f88/TicTacToe", line 183, in <module>
arrayValue = turns[j][i]
TypeError: 'int' object is not subscriptable
我的问题本质上是,我想测试turns[j][i]
是否等于turnCurrently
,但我一直遇到这个可下标的问题,我一直找不到答案,我认为这是一个非常重要的问题。提前谢谢,
理查德
打印变量的内容以查看发生了什么,通常会有很大帮助:
如您所见,该列表的前几个元素是简单整数,但不是整数列表。因此,当
j
很小时,它将选择一个int
并尝试对其应用[i]
,但失败了。你知道吗这种情况下的解决方案是将第一个元素放入一个额外的列表中:
另一种方法是将列表初始化为空列表,并附加第一个子列表:
试着用这个来构建一个二维的旋转数组(“矩阵”):
或者简单地说:
如您所见,矩阵只不过是一个列表列表。你不是一开始就在建立一个矩阵-第一行也是一个列表。你知道吗
你的布局很奇怪。前14个元素是整数,然后是其他几个数组。你知道吗
所以你基本上是这样的:
您可以通过将第一个赋值更改为:
相关问题 更多 >
编程相关推荐