擅长:python、mysql、java
<p>如果你想要一条线</p>
<pre><code>new_list = reduce(lambda a, b: a[:-1] + [ a[-1] + [ b ] ] if not element_regex.match(b) or not a[0] else a + [ [ b ] ], test_list, [ [] ])
</code></pre>
<p>会的。然而,<a href="https://www.python.org/dev/peps/pep-0020/" rel="nofollow">python way</a>将使用更详细的变体。在</p>
<p>我在2.1GHz的4核i7上做了一些速度测量。timeit模块运行这个代码1.000.000次,需要11.38秒。使用itertools模块中的<code>groupby</code>(另一个答案是karas variant)需要9.92秒。最快的变体是我建议的冗长版本,只需要5.66秒:</p>
^{pr2}$