擅长:python、mysql、java
<p>使用<a href="https://docs.python.org/2/library/itertools.html#itertools.groupby" rel="nofollow">^{<cd1>}</a>:</p>
<pre><code>>>> from itertools import chain, groupby
>>> alist = [1, 1, 2, 2, 2, 3, 3, 5, 5, 5]
>>> groups = [list(g) for _, g in groupby(alist)]
>>> for i, g in enumerate(groups):
print list(chain.from_iterable(groups[:i] + [g[1:]] + groups[i+1:]))
...
[1, 2, 2, 2, 3, 3, 5, 5, 5]
[1, 1, 2, 2, 3, 3, 5, 5, 5]
[1, 1, 2, 2, 2, 3, 5, 5, 5]
[1, 1, 2, 2, 2, 3, 3, 5, 5]
</code></pre>
<hr/>
<p>这里<code>groups</code>是包含所有组的列表列表:</p>
^{pr2}$
<p>现在我们可以迭代这个列表,并从当前组<code>g</code>中切出第一个项目,并使用切片和<code>itertools.chain.from_iterable</code>将其与其余的组连接起来。在</p>