Мне нужно иметь массив объектов python, которые будут использоваться при создании структуры данных trie. Мне нужна структура, которая будет фиксированной длины как кортеж и изменена как список. Я не хочу использовать список, потому что я хочу, чтобы убедиться, что в списке точно нужного размера (если он начнет выделять дополнительные элементы, накладные расходы на память могут складываться очень быстро, так как trie становится больше). Есть ли способ сделать это? Я попытался создать массив объектов:Как создать фиксированный размер, изменяемый массив объектов Python в Cython?
cdef class TrieNode:
cdef object members[32]
... но это дало ошибку:
Error compiling Cython file:
------------------------------------------------------------
...
cdef class TrieNode:
cdef object members[32]
^
------------------------------------------------------------
/Users/jason/src/pysistence/source/pysistence/trie.pyx:2:23: Array element cannot be a Python object
Что такое лучший способ сделать то, что я пытаюсь сделать?
Мое предпочтение - 'assert 0 <= idx
Простите, но это даже не в нужном месте, что я ищу. Две вещи: 1) Я искал способ сделать это на cython, чтобы создать расширение C. 2) У меня нет никакого способа заставить список заняться ровно 32 элементами. Он имеет len' из 32, но обычно больше места выделяется для упрощения добавления. –