擅长:python、mysql、java
<p>根据需要创建尽可能多的基本<code>n</code>范围序列的重复,按适当的数量进行偏移,展平并丢弃额外的项目:</p>
<pre><code>def skip_range(n, k, length):
N = (length - 1) // n + 1 # rounded up integer division
out = np.empty((N, n), dtype=np.intp)
out[:] = np.arange(0, N*(n+k), n+k)[:, None]
out += np.arange(n)
out.shape = (-1,)
out.resize(length)
return out
>>> skip_range(4, 2, 7)
array([0, 1, 2, 3, 6, 7, 8])
>>> skip_range(4, 2, 8)
array([0, 1, 2, 3, 6, 7, 8, 9])
>>> skip_range(4, 2, 9)
array([ 0, 1, 2, 3, 6, 7, 8, 9, 12])
</code></pre>