如果python list index为None

时间:2018-04-12 16:20:49

标签: python list indexing maze nonetype

基本上我在Python中制作Maze Generator

程序创建多个Cell个对象,一旦创建,被推送到名为grid的一维列表,网格使用函数

def get_index(self, i, j, cols, rows):
    if i < 0 or j < 0 or i > cols-1 or j > rows-1
        return None
    return i + j * cols

生成自身的索引及其顶部,右侧,底部和左侧邻居。我为这样的4个邻居调用了这个函数:

self.top = self.get_index(i, j-1, cols, rows)
self.right = self.get_index(i+1, j, cols, rows)
self.bottom = self.get_index(i, j+1, cols,       
self.left = self.get_index(i-1, j, cols, rows)

这两部分有效。但是,一旦我像这样分配/检查具有Null邻居的单元格

print(grid[self.top])

因为没有邻居而抛出异常! (无例外)

有没有办法将None值分配给对象列表?

E.g。单元格0,0的索引为0,顶部邻居值为None/-1/False etc.右值为1,底值为10,左值为None

然后我想查看列表并为每个单元分配4个邻居。

任何帮助都将不胜感激。

编辑: 我已经搬到了字典,它几乎可以工作。在旧方法grid[]将保留所有单元格对象。现在grid_dict{}做了。 它保留了单元格,i和j。我如何使用i和j的值作为指向具有精确i和j的单元格对象的指针?一旦这个工作,我希望做这样的事情来走过邻居

#use i, j of neighbour here to reference next cell
next() = neighbour()#random choice of top, right, bottom, left
next.visited = True
current = next()

0 个答案:

没有答案