如何在 Python 中删除字符串中的空格

介绍

本教程提供了各种方法的示例,您可以用来从Python中的字符串中删除白空间。

Python 字符串是不可变的,所以您不能更改它的值. 任何操纵字符串值的方法都会返回一个新的字符串。

本教程中的示例使用命令行中的 Python 交互式控制台来演示删除空格的不同方法。

1s = '  Hello World From DigitalOcean \t\n\r\tHi There  '

产量是:

1[secondary_label Output]
2  Hello World From DigitalOcean
3    Hi There

此字符串有不同类型的白空间和新行字符,如空间(``),卡(\t),新行(\n),和车厢返回(\r)。

使用 strip() 方法删除领先和追踪空间

Python String strip() 方法从字符串中删除引导和追踪字符,要删除的默认字符是空间。

声明字符串变量:

1s = '  Hello World From DigitalOcean \t\n\r\tHi There  '

使用 strip() 方法删除领先和追踪的白色空间:

1s.strip()

产量是:

1[secondary_label Output]
2'Hello World From DigitalOcean \t\n\r\tHi There'

如果您只想删除主要空间或后续空间,则可以使用 lstrip()rstrip() 方法。

使用代替() 方法删除所有空间

您可以使用 replace() 方法从字符串中删除所有白空间字符,包括从单词之间。

声明字符串变量:

1s = '  Hello World From DigitalOcean \t\n\r\tHi There  '

使用「replace()」方法以用空串代替空格:

1s.replace(" ", "")

产量是:

1[secondary_label Output]
2'HelloWorldFromDigitalOcean\t\n\r\tHiThere'

使用join()split()方法删除重复空间和新线字符

您可以使用 join() 方法和 split() 方法删除所有重复的白色空间和新行字符,在此示例中, split() 方法将字符串分割成列表,使用任何白色空间字符的默认分离器。

声明字符串变量:

1s = '  Hello World From DigitalOcean \t\n\r\tHi There  '

使用join()split()方法一起删除重复空间和新行字符:

1" ".join(s.split())

产量是:

1[secondary_label Output]
2'Hello World From DigitalOcean Hi There'

使用 translate() 方法删除所有空间和新行字符

您可以使用 translate() 方法删除所有白色空间和新行字符。 translate() 方法用词典或地图表中定义的字符代替指定的字符。 以下示例使用具有 string.whitespace 字符串常数的自定义字典,其中包含所有白色空间字符。

导入string模块,以便您可以使用string.whitespace:

1import string

声明字符串变量:

1s = '  Hello World From DigitalOcean \t\n\r\tHi There  '

使用「translate()」方法删除所有白空间字符:

1s.translate({ord(c): None for c in string.whitespace})

产量是:

1[secondary_label Output]
2'HelloWorldFromDigitalOceanHiThere'

使用 Regex 删除 Whitespace 字符

您还可以使用常规表达式来匹配白空间字符,并使用re.sub()函数删除它们。

此示例使用以下文件,regexspaces.py,以显示一些方法,您可以使用regex删除白空间字符:

1[label regexspaces.py]
2import re
3
4s = '  Hello World From DigitalOcean \t\n\r\tHi There  '
5
6print('Remove all spaces using regex:\n', re.sub(r"\s+", "", s), sep='')  # \s matches all white spaces
7print('Remove leading spaces using regex:\n', re.sub(r"^\s+", "", s), sep='')  # ^ matches start
8print('Remove trailing spaces using regex:\n', re.sub(r"\s+$", "", s), sep='')  # $ matches end
9print('Remove leading and trailing spaces using regex:\n', re.sub(r"^\s+|\s+$", "", s), sep='')  # | for OR condition

从命令行运行文件:

1python3 regexspaces.py

你会得到以下的输出:

 1Remove all spaces using regex:
 2HelloWorldFromDigitalOceanHiThere
 3Remove leading spaces using regex:
 4Hello World From DigitalOcean 	
 5    Hi There  
 6Remove trailing spaces using regex:
 7  Hello World From DigitalOcean 	
 8    Hi There
 9Remove leading and trailing spaces using regex:
10Hello World From DigitalOcean 	
11    Hi There

结论

在本教程中,您了解了一些方法,您可以用来从Python中的字符串中删除白空间字符。

Published At
Categories with 技术
Tagged with
comments powered by Disqus