Многомерный массив в Python - PullRequest
8 голосов
/ 03 февраля 2009

У меня небольшая проблема с Java, которую я хочу перевести на Python. Для этого мне нужен многомерный массив. В Java это выглядит так:

double dArray[][][] = new double[x.length()+1][y.length()+1][x.length()+y.length()+3];
dArray[0][0][0] = 0;
dArray[0][0][1] = POSITIVE_INFINITY;

Дальнейшие значения будут создаваться в цикле bei и записываться в массив.

Как мне создать экземпляр массива?

PS: Умножение матриц не используется ...

Ответы [ 12 ]

0 голосов
/ 28 июля 2009

Я только что натолкнулся на аналогичную потребность и закодировал это:

def nDimensionsMatrix(dims, elem_count, ptr=[]):
    if (dims > 1):
        for i in range(elem_count[dims-1]):
            empty = []
            ptr.append(empty)
            nDimensionsMatrix(dims-1, elem_count, empty)
        return ptr
    elif dims == 1:
        ptr.extend([0 for i in range(elem_count[dims])])
        return ptr

matrix = nDimensionsMatrix(3, (2,2,2))

Я не смотрю на скорость, только функциональность;)

Я хочу создать матрицу с N измерениями и инициализировать 0 (a elem_count количество элементов в каждом измерении).

Надеюсь, это кому-то поможет

0 голосов
/ 05 ноября 2008

Другой вариант - использовать словарь:

>>> from collections import defaultdict
>>> array = defaultdict(int) # replace int with the default-factory you want
>>> array[(0,0)]
0
>>> array[(99,99)]
0

Вам также необходимо отслеживать верхнюю и нижнюю границы.

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