我如何剥离所有的空间在一个python字符串?例如,我想要一个像stripmyspaces这样的字符串变成stripmyspaces,但我似乎不能用strip()来完成:
>>> 'strip my spaces'.strip()
'strip my spaces'
我如何剥离所有的空间在一个python字符串?例如,我想要一个像stripmyspaces这样的字符串变成stripmyspaces,但我似乎不能用strip()来完成:
>>> 'strip my spaces'.strip()
'strip my spaces'
当前回答
将字符串分成单词 去掉两边的空白 最后用单一的空间将它们连接起来
代码的最后一行:
' '.join(word.strip() for word in message_text.split()
其他回答
删除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(" ", ""))
TL /博士
这个解决方案使用Python 3.6进行了测试
在Python3中,要去除字符串中的所有空格,可以使用以下函数:
def remove_spaces(in_string: str):
return in_string.translate(str.maketrans({' ': ''})
要删除任何空白字符(' \t\n\r\x0b\x0c'),您可以使用以下函数:
import string
def remove_whitespace(in_string: str):
return in_string.translate(str.maketrans(dict.fromkeys(string.whitespace)))
解释
Python的str.translate方法是str的内置类方法,它接受一个表,并返回通过传递的转换表映射的每个字符的字符串副本。str.translate的完整文档
要创建转换表,使用str.maketrans。这个方法是str的另一个内置类方法。在这里,我们只用一个形参来使用它,在这种情况下是一个字典,其中的键是要替换的字符映射到字符替换值的值。它返回一个用于str.translate的翻译表。str.maketrans的完整文档
python中的string模块包含一些常见的字符串操作和常量。字符串。whitespace是一个常量,返回一个包含所有被认为是空格的ASCII字符的字符串。这包括字符空格、制表符、换行符、返回符、换行符和垂直制表符。string.whitespace的完整文档
在第二个函数中,dict.fromkeys用于创建一个字典,其中键是string返回的字符串中的字符。每个值为None的空格。dict.fromkeys的完整文档
如果不需要最佳性能,你只想要一些非常简单的东西,你可以定义一个基本函数来测试每个字符,使用string类内置的"isspace"方法:
def remove_space(input_string):
no_white_space = ''
for c in input_string:
if not c.isspace():
no_white_space += c
return no_white_space
以这种方式构建no_white_space字符串不会有理想的性能,但解决方案很容易理解。
>>> remove_space('strip my spaces')
'stripmyspaces'
如果不想定义函数,可以将其转换为与列表推导式略有相似的内容。借用顶部答案的连接解决方案:
>>> "".join([c for c in "strip my spaces" if not c.isspace()])
'stripmyspaces'
这个问题在面试中被问到。如果你要用条形法来解的话。这是一种方法
s='string with spaces'
res=''.join((i.strip(' ') for i in s))
print(res)
用re.sub试试正则表达式。您可以搜索所有空白,并将其替换为空字符串。
模式中的\s将匹配空白字符,而不仅仅是空格(制表符,换行符等)。你可以在手册中读到更多的信息。