擅长:python、mysql、java
<p>你只需要一种方法在你的字符串上迭代3块。</p>
<pre><code>>>> a = '345674655'
>>> [a[i:i+3] for i in range(0, len(a), 3)]
['345', '674', '655']
</code></pre>
<p>然后<code>' '.join</code>结果。</p>
<pre><code>>>> ' '.join([a[i:i+3] for i in range(0, len(a), 3)])
'345 674 655'
</code></pre>
<p>注意:</p>
<pre><code>>>> [''.join(x) for x in zip(*[iter(a)]*3)]
['345', '674', '655']
</code></pre>
<p>也适用于对字符串进行分区。这将适用于任意iterable(不只是字符串),但会截断长度不能被3整除的字符串。要恢复原始文件的行为,可以在py3k中使用<code>itertools.izip_longest</code>(<code>itertools.zip_longest</code>):</p>
<pre><code>>>> import itertools
>>> [''.join(x) for x in itertools.izip_longest(*[iter(a)]*3, fillvalue=' ')]
['345', '674', '655']
</code></pre>
<p>当然,你在阅读方面付出了一点代价,因为在后一个答案中改进了泛化。。。</p>