Python“列表索引必须是整数,而不是元组"错误

2022-01-18 00:00:00 python list arrays grid robot

问题描述

I'm working on moving a robot around a 2d grid room of 8 x 8, and one part is initialising the sensors which consist of the closest 5 tiles around the robot.

self.sensors = [0 for x in xrange(5)]

here I'm creating an empty of array of 5 elements.

but when I attempt to set the value of sensors like this:

    if self.heading == 'East':
        self.sensors[0] = self.room[self.x, self.y-1]
        self.sensors[1] = self.room[self.x+1, self.y-1]
        self.sensors[2] = self.room[self.x+1, self.y]
        self.sensors[3] = self.room[self.x+1, self.y+1]
        self.sensors[4] = self.room[self.x, self.y+1]

I get the error of 'list indices must be integers, not tuples'.

解决方案

You say self.room is a "2d grid" -- I assume it is a list of lists. In this case, you should access its elements as

self.room[self.x][self.y-1]

instead of indexing the outer list with the pair self.x, self.y-1.

相关文章