我如何剥离所有的空间在一个python字符串?例如,我想要一个像stripmyspaces这样的字符串变成stripmyspaces,但我似乎不能用strip()来完成:
>>> 'strip my spaces'.strip()
'strip my spaces'
我如何剥离所有的空间在一个python字符串?例如,我想要一个像stripmyspaces这样的字符串变成stripmyspaces,但我似乎不能用strip()来完成:
>>> 'strip my spaces'.strip()
'strip my spaces'
当前回答
用re.sub试试正则表达式。您可以搜索所有空白,并将其替换为空字符串。
模式中的\s将匹配空白字符,而不仅仅是空格(制表符,换行符等)。你可以在手册中读到更多的信息。
其他回答
利用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
注意,正则表达式是缓存的,所以它并不像你想象的那么慢。预先编译它会有所帮助,但只有在实践中调用多次才会有影响:
$ 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倍,但请记住,瓶颈肯定在其他地方。大多数程序不会注意到这3个选项之间的区别。
import re
re.sub(' ','','strip my spaces')
删除Python中的起始空格
string1 = " This is Test String to strip leading space"
print(string1)
print(string1.lstrip())
在Python中删除尾随空格或结束空格
string2 = "This is Test String to strip trailing space "
print(string2)
print(string2.rstrip())
在Python中,从字符串的开头和结尾删除空白空间
string3 = " This is Test String to strip leading and trailing space "
print(string3)
print(string3.strip())
删除python中的所有空格
string4 = " This is Test String to test all the spaces "
print(string4)
print(string4.replace(" ", ""))
正如Roger Pate所提到的,以下代码对我来说是有效的:
s = " \t foo \n bar "
"".join(s.split())
'foobar'
我正在使用Jupyter Notebook运行以下代码:
i=0
ProductList=[]
while i < len(new_list):
temp='' # new_list[i]=temp=' Plain Utthapam '
#temp=new_list[i].strip() #if we want o/p as: 'Plain Utthapam'
temp="".join(new_list[i].split()) #o/p: 'PlainUtthapam'
temp=temp.upper() #o/p:'PLAINUTTHAPAM'
ProductList.append(temp)
i=i+2
这个问题在面试中被问到。如果你要用条形法来解的话。这是一种方法
s='string with spaces'
res=''.join((i.strip(' ') for i in s))
print(res)