私はこの種のコードをコンパイルしようとしています:
def my_func(double c, int m):
cdef double f[m][m]
f = [[c for x in range(m)] for y in range(m)]
...
これは発生します:
Error compiling Cython file:
------------------------------------------------------------
def grow(double alpha, double beta, double gamma, int m, int s):
cdef double f[m][m]
^
------------------------------------------------------------
test.pyx:6:22: Not allowed in a constant expression
その後、指摘された場所で変数を使用できないと想定し、数値で試します:
def my_func(double c, int m):
cdef double f[500][500]
f = [[c for x in range(500)] for y in range(500)]
...
しかし、私は得る:
Error compiling Cython file:
------------------------------------------------------------
f = [[beta for x in range(500)] for y in range(500)]
^
------------------------------------------------------------
test.pyx:13:6: Assignment to non-lvalue 'f'
そこで、cython コードで 2D リストを宣言して作成する方法を考えています。「cython 2D list」のグーグルのドキュメントでこの種の例を見つけることができませんでした