擅长:python、mysql、java
<p>由于您没有提到切片背后的逻辑,我建议您使用以下函数:</p>
<pre><code>>>> def slicer(l,n):
... le=len(l)
... S=int(np.around(float(le)/n))
... return [l[i:i+S] for i in range(0,le,S)]
...
>>> slicer([1,3,4,11,12,19,20,21],2)
[[1, 3, 4, 11], [12, 19, 20, 21]]
>>> slicer([1,3,4,11,12,19,20,21],3)
[[1, 3, 4], [11, 12, 19], [20, 21]]
>>> slicer([1,3,4,11,12,19,20,21],4)
[[1, 3], [4, 11], [12, 19], [20, 21]]
</code></pre>
<p>在这里,我使用<a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.around.html" rel="nofollow">^{<cd1>}</a>取整<code>float(le)/n</code>以获得真正的切片!在</p>