爲什麼textwrap.wrap()
和textwrap.fill()
這麼慢?例如,要在我的筆記本電腦上包裝10000個字符的字符串需要近兩秒半的時間。爲什麼textwrap.wrap()和textwrap.fill()這麼慢?
$ python -m timeit -n 10 -s 's = "A" * 10000; import textwrap' 'textwrap.fill(s)'
10 loops, best of 3: 2.41 sec per loop
與此相比,該代碼改編自an answer to a related Stack Overflow question
#!/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))
它包裝大小的文本訂單比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
TextWrap包的話,大概用了很多非拉丁腳本支持,而你的簡單代碼將字符串分成70個長度的數組。 – hamstergene 2012-08-02 16:01:36