我想要做
cdef int mom2calc[3]
mom2calc[0] = 1
mom2calc[1] = 2
mom2calc[2] = 3
Run Code Online (Sandbox Code Playgroud)
以更紧凑的方式.类似的东西
cdef int mom2calc[3] = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这是一个无效的Cython语法.
注意:
cdef int* mom2calc = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
不是一个选项,因为我无法(自动)将其转换为内存视图.
Vee*_*rac 28
cdef int mom2calc[3]
mom2calc[:] = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这适用于原始指针(虽然它没有检查边界),内存视图和固定大小的数组.它只适用于一个维度,但这通常就足够了:
cdef int mom2calc[3][3]
mom2calc[0][:] = [1, 2, 3]
mom2calc[1][:] = [4, 5, 6]
mom2calc[2][:] = [7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
cdef int[3] mom2calc = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这是应该如何做的。Cython 测试中的 C 数组初始化示例是例如here。
| 归档时间: |
|
| 查看次数: |
12313 次 |
| 最近记录: |