私はこの種のコードにコンパイルしようとしている中での2Dリストを宣言する方法:Cython
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'
だから、私はどのように宣言し、サイフォンコードで2Dリストを作るのだろうかと思います。 I「はcythonの2Dリスト」
私が宣言を残しておけば、コンパイルされたコードが出てきますので、宣言が間違っていると思います。 – theta
実際にリストのリスト、または2次元C配列が欲しいですか? – delnan
はい、それは書かれているようです。私はこの(さらに2つの)リストの各要素をループする非常に遅いPythonコードを高速化しようとしています。それがどれほど遅いか想像してみてください。 – theta