【发布时间】:2018-05-08 13:40:34
【问题描述】:
这个小程序可以更快吗?使用 elif 会使理解失控,但也许我没有以正确的方式尝试。
def cleanup(s):
strng = ''
good = ['\t', '\r', '\n']
for char in s:
if unicodedata.category(char)[0]!="C":
strng += char
elif char in good:
strng += char
elif char not in good:
strng += ' '
return strng
【问题讨论】:
-
至少你可以通过将
elif char not in good:更改为else:来加快速度。如果您希望某人找到更好的方法,请添加示例string、unicodedata.category并详细说明您在做什么。 -
一般来说,
some_string += some_other_string在循环中会很慢。它具有二次复杂度(尽管解释器会尝试对其进行优化),但是,您应该将其折射为使用list和.append,然后在最后使用''.join。
标签: python python-2.7 performance for-loop