介绍
本教程提供了各种方法的示例,您可以用来从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中的字符串中删除白空间字符。