Хранить объект в 2-мерном массиве в Python? - PullRequest
0 голосов
/ 13 апреля 2019

Я хочу сохранить объект узла (содержащий такие вещи, как координаты ax и 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 ]

1 голос
/ 13 апреля 2019

Для этой цели вы можете использовать Numpy , определив тип данных как object:

import numpy as np

array = np.empty((3, 3), dtype=object)
array[0, 0] = Node(...)
0 голосов
/ 13 апреля 2019

Вы можете объявить 2d-массив с высотой y и шириной x, заполненный нулями, используя понимание списка следующим образом:

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

Вы можете хранить объекты узлов в позиции y, x в этом 2d-массиве следующим образом:

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

Вы можете получить доступ к объекту в позиции y, x из двухмерного массива следующим образом:

node = foo[y][x]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...