在python中将对象存储在二维数组中?

时间:2019-04-12 23:34:46

标签: python arrays list

我想将节点对象(包含x和y坐标以及状态之类的东西)存储在二维数组中,这样我就可以像这样访问对象:

array_variable[x, y]

不幸的是,我不知道如何在python中做到这一点,因为我还很陌生。这是相关代码:

class node:    
    def init(self, x, y, state):
        self.x = x;
        self.y = y;
        self.state = state;

from node import node;

class grid:
    def init(self, x, y):
        self.width = x;
        self.height = y;
        self.g = [x, y];


    def set_node(self, x, y, state):
        print(len(self.g));
        n = node();
        n.init(x, y, state);
        self.g[x][y] = n;

2 个答案:

答案 0 :(得分:1)

您可以通过将数据类型定义为object来使用Numpy

import numpy as np

array = np.empty((3, 3), dtype=object)
array[0, 0] = Node(...)

答案 1 :(得分:0)

您可以使用以下列表理解方法声明高度为y,宽度为x且由零填充的2d数组:

foo = [[0 for _ in range(x)] for _ in range(y)]

您可以像这样在2d数组中将节点对象存储到位置y,x:

n = node()
foo[y][x] = n

您可以像这样从2d数组访问位置y,x的对象:

node = foo[y][x]