如何删除python字符串中的所有空格?例如,我希望将一个字符串strip my spaces转换为stripmyspaces,但是我似乎无法通过以下方式完成此操作strip():
strip my spaces
stripmyspaces
strip()
>>> 'strip my spaces'.strip() 'strip my spaces'
利用没有sep参数的str.split的行为:
>>> s = " \t foo \n bar " >>> "".join(s.split()) 'foobar'
如果只想删除空格而不是所有空格:
>>> s.replace(" ", "") '\tfoo\nbar'
尽管效率不是主要目标(编写清晰的代码是),但以下是一些初始时间:
$ python -m timeit '"".join(" \t foo \n bar ".split())' 1000000 loops, best of 3: 1.38 usec per loop $ python -m timeit -s 'import re' 're.sub(r"\s+", "", " \t foo \n bar ")' 100000 loops, best of 3: 15.6 usec per loop
请注意,正则表达式已缓存,因此它没有您想象的那么慢。编译事前帮助一些,但在实践中,如果你把这个只会重要 很多 倍:
$ python -m timeit -s 'import re; e = re.compile(r"\s+")' 'e.sub("", " \t foo \n bar ")' 100000 loops, best of 3: 7.76 usec per loop
即使re.sub的速度慢了11.3倍,但请记住,瓶颈肯定在其他地方。大多数程序不会注意到这三个选择之间的区别。