Tôi cần phải có một mảng các đối tượng python được sử dụng trong việc tạo cơ sở hạ tầng trie. Tôi cần một cấu trúc sẽ được cố định chiều dài giống như một tuple và có thể thay đổi giống như một danh sách. Tôi không muốn sử dụng danh sách vì tôi muốn có thể đảm bảo rằng danh sách là chính xác kích thước phù hợp (nếu nó bắt đầu phân bổ các phần tử phụ, chi phí bộ nhớ có thể tăng lên rất nhanh khi trie phát triển lớn hơn). Có cách nào để làm việc này không? Tôi đã cố gắng tạo ra một mảng của các đối tượng:Làm cách nào để tạo một mảng có thể thay đổi, có thể thay đổi được của các đối tượng Python trong Cython?
cdef class TrieNode:
cdef object members[32]
... nhưng điều đó đã đưa ra một lỗi:
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
cách tốt nhất để làm những gì tôi đang cố gắng để làm là gì?
Tùy chọn của tôi là 'khẳng định 0 <= idx
Xin lỗi, nhưng đây không phải là ngay cả trong các ballpark bên phải của những gì tôi đang tìm kiếm. Hai điều: 1) Tôi đã tìm kiếm một cách để làm điều này trong cython để tạo ra một phần mở rộng C. 2) Tôi không có cách nào để buộc danh sách phải lấy chính xác 32 phần tử. Nó có một 'len' của 32, nhưng thường có nhiều không gian hơn được phân bổ để làm cho việc phụ thêm dễ dàng hơn. –