擅长:python、mysql、java
<p>考虑使用<a href="https://more-itertools.readthedocs.io/en/latest/api.html#more_itertools.run_length" rel="nofollow noreferrer">^{<cd1>}</a>工具。在</p>
<p><strong>演示</strong></p>
<pre><code>import more_itertools as mit
iterable = "aabccccaaa"
list(mit.run_length.encode(iterable))
# [('a', 2), ('b', 1), ('c', 4), ('a', 3)]
</code></pre>
<p><strong>编码</strong></p>
^{pr2}$
<p/>
<pre><code>"".join(x[0] + str(x[1]) for x in mit.run_length.encode(iterable))
# 'a2b1c4a3'
</code></pre>
<p>可选的itertools/功能样式:</p>
<pre><code>"".join(map(str, it.chain.from_iterable(x for x in mit.run_length.encode(iterable))))
# 'a2b1c4a3'
</code></pre>
<p><em>注意:<code>more_itertools</code>是可通过<a href="https://github.com/erikrose/more-itertools" rel="nofollow noreferrer">^{<cd3>}</a>安装的第三方库。</em></p>