如何剥离python字符串中的所有空格?例如,我希望将strip my spaces
这样的字符串转换为stripmyspaces
,但我似乎无法用strip()
实现这一点:
>>> 'strip my spaces'.strip()
'strip my spaces'
如何剥离python字符串中的所有空格?例如,我希望将strip my spaces
这样的字符串转换为stripmyspaces
,但我似乎无法用strip()
实现这一点:
>>> 'strip my spaces'.strip()
'strip my spaces'
利用str.split没有sep参数的行为:
>>> 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
注意正则表达式是缓存的,所以它不像你想象的那么慢.事先编译它有一些帮助,但只有在实践中,如果你称之为many次:
$ 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
即使你是.sub的速度要慢11.3倍,记住你的瓶颈肯定在别处.大多数程序都不会注意到这三种 Select 之间的差异.