如何在Python中实现循环范围对象?
e.g。
设S是一个模2 ^ 3(范围[0,2 ^ 3))的圆形空间。 我想生成一个这样的范围对象:
crange(3, 7, 2 ** 3) => a range object [3, 4, 5, 6]
crange(7, 3, 2 ** 3) => a range object [7, 0, 1, 2]
我试过这个:
def crange(start, stop, modulo):
if start > stop:
return range(start, modulo) or range(stop)
else:
return range(start, stop)
但是我无法输入bigint作为例如crange(8, 2, 2 ** 160)
。
OverflowError: Python int too large to convert to C ssize_t