擅长:python、mysql、java
<p>由于值总是增加一个,因此这里有另一种方法可以做到这一点,而不必显式计算每个值的出现次数:</p>
<pre><code>>>> Values = [0,0,1,1,1,1,1,2,2,2,3,3,3,3,3,3,4,4,4,5,5,5,5]
>>> starts = [Values.index(i) for i in range(Values[-1] + 1)] + [len(Values)]
>>> print starts
[0, 2, 7, 10, 16, 19, 23]
>>> ranges = [range(starts[i], starts[i + 1]) for i in range(len(starts) - 1)]
>>> for r in ranges:
... print r
...
[0, 1]
[2, 3, 4, 5, 6]
[7, 8, 9]
[10, 11, 12, 13, 14, 15]
[16, 17, 18]
[19, 20, 21, 22]
</code></pre>