擅长:python、mysql、java
<p>下面是一个相当通用、简洁、高效的方法:</p>
<pre><code>import textwrap
from itertools import zip_longest
def grouper(n, iterable, _SENTINEL=object()):
""" Collect data into fixed-length chunks or blocks. """
args = [iter(iterable)] * n
for t in zip_longest(*args, fillvalue=_SENTINEL):
yield list(elem for elem in t if elem is not _SENTINEL)
def text_wrap(words, numcols, indent=0):
lines = (' '.join(group) for group in grouper(numcols, words))
return textwrap.indent('\n'.join(lines), indent*' ')
if __name__ == '__main__':
a = 'A121', 'A221', 'A321', 'A421', 'A521', 'A621', 'A721', 'A821', 'A921'
lines = text_wrap(a, 5, 8)
print(lines)
</code></pre>
<p>输出:</p>
<pre class="lang-none prettyprint-override"><code> A121 A221 A321 A421 A521
A621 A721 A821 A921
</code></pre>