对我来说,尚不清楚单元格中是否仅存在x和y坐标以外的其他信息。无论如何,我认为需要更改数据结构以使其更快。
我假设单元格中有额外的信息,并且将其
grid.cells作为字典,并且将键作为坐标的元组。
grid.cells如果单元格中只有坐标信息,则可以将其作为一个集合来完成。
def get_adjacent_cells( self, x_coord, y_coord ): result = {} for x,y in [(x_coord+i,y_coord+j) for i in (-1,0,1) for j in (-1,0,1) if i != 0 or j != 0]: if (x,y) in grid.cells: result[(x,y)] = grid.cells[(x,y)]
根据您要处理的数据的不同,您可能不希望将结果做成字典,但希望您能理解。这应该比您的代码快得多,因为您的代码会对中的每个单元格进行8次检查
grid.cells。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)