如何在Python中将字符串中的制表符展开为多个空格?


Python有效地管理字符串之间的空格。在本文中,我们将研究在不确定需要多少空格时,如何在字符串中添加空格的方法。

使用字符串expandtabs()方法

Python中一个内置的方法叫做String expandtabs(),用于处理字符串中的空格。Python中的expandtabs()方法创建一个字符串的副本,其中所有制表符'\t'都替换为空格字符,直到下一个tabsize参数的倍数。

在某些情况下,可能需要定义在字符串中应该留下多少空格,但具体数量取决于具体情况。

在这种情况下不断调整字符串是一个费力的过程。因此,Python库中的“expandtabs()”方法定义了在替换“\t”符号之前应该向字符串添加多少空格。

语法

以下是expandtabs()的语法:

string.expandtabs(size_of_tab)

其中,

size_of_tab_ 是替换\t的空格字符大小。默认为8。

返回值

返回的字符串中,所有'\t'字符都将被空格字符替换,直到下一个制表符大小参数的倍数。

示例

没有任何参数

在下面的示例中,我们没有向expandtabs()函数传递任何参数:

string = "Expanding\ttabs\tin\tstring\tto\tmultiple\tspaces." result = string.expandtabs() print('The expanded string is:',result)

输出

上面的例子中,Python字符串expandtabs()函数没有参数,即大小。因此,默认大小8被用来代替'\t'。

The expanded string is: Expanding       tabs    in      string  to      multiple        spaces.

示例

使用不同的参数

在下面的示例中,我们向expandtabs()函数传递不同的参数:

string = "Expanding\ttabs\tin\tstring\tto\tmultiple\tspaces." result = string.expandtabs(6) result1 = string.expandtabs(3) result2 = string.expandtabs(2) print('The expanded string is:',result) print('The expanded string is:',result1) print('The expanded string is:',result2)

输出

在上面的代码示例中,Size = 6、Size = 3和Size = 2作为参数传递给Python字符串expandtabs()函数。因此,大小分别为6、3和2个单位的空格被用来代替整个字符串中的字符“\t”。

The expanded string is: Expanding   tabs  in    string      to    multiple    spaces.
The expanded string is: Expanding   tabs  in string   to multiple spaces.
The expanded string is: Expanding tabs  in  string  to  multiple  spaces.

expandtabs()中的错误和异常

如果我们尝试传递一个不是整数类型的值(例如浮点数)作为参数,Python字符串expandtabs()函数会抛出一个TypeError异常。

因此,很明显expandtabs()函数只接受整数类型的参数。以下是用非整数值作为参数传递expantabs()方法的示例:

示例

string = "Expanding\ttabs\tin\tstring\tto\tmultiple\tspaces." result = string.expandtabs(6.2) print('The expanded string is:',result)

输出

执行上述代码时会抛出以下错误:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    result = string.expandtabs(6.2)
TypeError: integer argument expected, got float

使用numpy.expandtabs()函数

Python Numpy模块中的numpy.char.expandtabs()函数执行与内置expandtabs()函数相同的函数。

如果用户想要更精确,他们也可以将数组作为参数传递给numpy.char.expandtabs()函数以及空格的大小。

语法

以下是numpy.expandtabs()的语法:

numpy.char.expandtabs(array,size_of_tab)

其中,

  • array 包含函数操作的元素。

  • size_of_tab(可选) 通过用这个可选参数替换制表符字符或“\t”,指定要提供的空格大小。

示例

以下是numpy.expantabs()函数的示例:

import numpy given_array = numpy.array("Expanding\ttabs\tin\tstring\tto\tmultiple\tspaces.") result = numpy.char.expandtabs(given_array,16) print('The expanded string array is:',result)

输出

以下是上述代码的输出:

The expanded string array is: Expanding       tabs            in              string          to              multiple        spaces.

使用replace()方法

Python中的字符串类包含一个叫做replace的方法。它需要两个字符串作为输入:一个要替换的字符串和一个要用来代替它的字符串。它与字符串对象一起使用。

示例

以下是用replace()方法将字符串中的制表符展开为多个空格的示例:

string = "Expanding tabs in string to multiple spaces." result = string.replace('\t', '') print( result)

输出

以下是上述代码的输出

Expanding tabs in string to multiple spaces.

使用re模块

Python的“re”模块也可以与正则表达式一起使用以达到相同的结果。要替换字符串中的字符,请使用函数re.sub(要替换的正则表达式,要替换成的正则表达式,字符串)。

示例

以下是用re模块将字符串中的制表符展开为多个空格的示例:

import re string = "Expanding tabs in string to multiple spaces." result = re.sub('\t', '',string) print(result)

输出

以下是上述代码的输出:

Expanding tabs in string to multiple spaces.

更新于:2022年11月23日

3K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告