您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python expandtabs字符串操作

Python expandtabs字符串操作

str.expandtabs(n)不等同于str.replace("\t", " " * n)

str.expandtabs(n)跟踪每行上的当前光标位置,并用从当前光标位置到下一个制表位的空格数替换找到的每个制表符。制表位被视为每个n字符。

这是制表符工作方式的基础,而不是特定于Python。

string.expandtabs(n) 等效于:

def expandtabs(string, n):
    result = ""
    pos = 0
    for char in string:
        if char == "\t":
            # instead of the tab character, append the
            # number of spaces to the next tab stop
            char = " " * (n - pos % n)
            pos = 0
        elif char == "\n":
            pos = 0
        else:
            pos += 1
        result += char
    return result

并举例说明:

>>> input = "123\t12345\t1234\t1\n12\t1234\t123\t1"
>>> print(expandtabs(input, 10))
123       12345     1234      1
12        1234      123       1

请注意,每个制表符("\t")如何被替换为使其与下一个制表符对齐的空格数量在这种情况下,因为我提供了,所以每10个字符都有一个制表位n=10

python 2022/1/1 18:26:11 有169人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶