在Cython代码中进行模运算(5 % 2
)的最简单快捷的方法是什么?似乎使用%
会大大减慢代码的速度,所以更好的方法是这样做吗?
答案 0 :(得分:5)
根据https://github.com/cython/cython/wiki/enhancements-division,使用编译器指令cython.cdivision
。请注意,处理负数模数会有不同的语义。
答案 1 :(得分:-1)
我在任何地方使用%运算符,我认为它不会减慢代码速度。事实上,%真的很快!你用cdef声明变量了吗?也许你因此而增加了太多的python开销。
答案 2 :(得分:-2)
您可以使用内置divmod
吗?该函数接受两个参数并返回其商和余数的元组。
>>> 10 % 7
3
>>> divmod(10,7)
(1, 3)
>>> -7 % 3
2
>>> divmod(-7,3)
(-3, 2)