Я хочу сохранить объект узла (содержащий такие вещи, как координаты 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;
0
user11161437 13 Апр 2019 в 02:34

2 ответа

Лучший ответ

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

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

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

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

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

node = foo[y][x]
0
Andry 12 Апр 2019 в 23:48

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

import numpy as np

array = np.empty((3, 3), dtype=object)
array[0, 0] = Node(...)
1
a_guest 12 Апр 2019 в 23:44