为什么textwrap.wrap()和textwrap.fill()这么慢?例如,要在我的笔记本电脑上包装10000个字符的字符串需要将近两秒半.
$ python -m timeit -n 10 -s 's = "A" * 10000; import textwrap' 'textwrap.fill(s)'
10 loops, best of 3: 2.41 sec per loop
Run Code Online (Sandbox Code Playgroud)
将其与此相应的代码进行比较,该代码根据相关Stack Overflow问题的答案进行调整
#!/usr/bin/env python
# simplewrap.py
def fill(text, width=70):
return '\n'.join(text[i:i+width] for i in
range(0, len(text), width))
Run Code Online (Sandbox Code Playgroud)
它包含的文本数量级比textwrap以下更快:
$ python -m timeit -n 10 -s 's = "A" * 10000; import simplewrap' 'simplewrap.fill(s)'
10 loops, best of 3: 37.2 usec per loop
Run Code Online (Sandbox Code Playgroud) python ×1