' INT'对象不可订阅 - 不确定如何修复

时间:2015-10-05 01:20:57

标签: python syntax

嘿家伙我得到了这个错误:

Traceback (most recent call last):
  File "/Applications/Wing101.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 1, in <module>
    # Used internally for debug sandbox under external interpreter
  File "/Applications/Wing101.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 25, in solveMaze
  File "/Applications/Wing101.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 39, in recursiveSolver
builtins.TypeError: 'int' object is not subscriptable

关于这行代码我不知道如何解决任何想法?

elif maze.listoflist[currentpos[0][currentpos[1]+1]] == " " and
maze.listoflist[currentpos[0][currentpos[1]+2]] == "*" and [currentpos[0]
[currentpos[1]+2]] not in blacklist:

2 个答案:

答案 0 :(得分:1)

我认为你在这里有一些问题,但除非你分享currentpos和/或maze.listoflist中的内容,否则只能猜测。

假设maze.listoflist是一个列表清单 - 即:maze.listoflist = [[...], [...]]

你需要像这样对其进行索引:

maze.listoflist[index_X][index_Y] // Correct indexing listoflist

不像你有:

maze.listoflist[index_X[index_Y]]  // Your version

index_X和index_Y都是整数。

然而,这不是您所看到的错误。

  

&#39; INT&#39;对象不可订阅

告诉我们你有一个int,但是正在尝试索引它。可订阅对象是数组,元组,dicts和字符串,或实现 getitem ()接口的自定义对象,索引它们的语法是使用[]

你认为是列表(或其他可订阅类型)的东西不是,它是一个int。

在抛出错误的行之前添加一个print语句,并向我们显示currentpos的内容(它比maze.listoflist更可能)。

答案 1 :(得分:0)

我猜 currentpos 是一个整数数组,你不能下标(括号左右)一个整数。