【发布时间】:2012-10-14 09:17:14
【问题描述】:
我有一个嵌套列表,名为 env,在构造函数中创建,另一种填充网格元素的方法定义如下:
class Environment(object):
def __init__(self,rowCount,columnCount):
env = [[ None for i in range(columnCount)] for j in range(rowCount) ]
return env
def addElement(self, row, column):
self[row][column] = 0
稍后在代码中,我通过运行创建了一个 Environment 实例:
myEnv = createEnvironment(6,6)
然后我想通过运行向环境中添加一个元素:
myEnv.addElement(2,2)
所以我期望发生的事情是我会收到一个新的 Environment 对象,它是一个 6x6 网格,网格的位置 2,2 为 0。但这不起作用。
我有两个错误:
- 我无法从 init 方法返回 None 以外的任何内容。
-
我们在尝试执行
addElement(2, 2)时遇到的主要问题是这个错误:"TypeError: 'Environment' object does not support indexing.
我查看了 __getitem__ 和 __setitem__ 方法,但无法让它们处理多维列表。我应该使用更好的数据结构来创建网格吗?
【问题讨论】:
标签: python list object indexing