【问题标题】:Using consecutive line boundary with 'splitlines()'使用带有'splitlines()'的连续线边界
【发布时间】:2021-12-09 15:05:04
【问题描述】:

我正在尝试在splitlines() 方法中使用连续行边界

grocery = 'Milk\nChicken\r\nBread\rButter'
print(grocery.splitlines())

执行上述代码时,我得到以下输出:

['Milk', 'Chicken', 'Bread', 'Butter']

但是,下面的代码给出了一个额外的空列表项:

grocery = 'Milk\nChicken\r\rBread\rButter'
print(grocery.splitlines())

输出:

['Milk', 'Chicken', '', 'Bread', 'Butter']

请帮助我理解为什么在第二种情况下我会得到一个额外的空列表项。

【问题讨论】:

    标签: python python-3.x string list split


    【解决方案1】:

    在您的第二个示例中,第二个 \r 被视为单独的行,当您这样做时会发生类似的事情:

    >>> grocery = 'Milk\nChicken\n\nBread\rButter'
    >>> grocery.splitlines()
    ['Milk', 'Chicken', '', 'Bread', 'Butter']
    

    当您使用\r\n 的组合时,它被视为换行符,因为终端会话中的换行符都需要回车换行符对。

    【讨论】:

    • 但是当我做\r\n时,不是创建了两个换行符吗?
    • \r\n 基本上只是一个换行符,在终端上尝试print("hello\r\nhi")\r 基本上是回车,所以\r\n 的组合就是一个新行,否则它只需要将光标移到行首
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 2015-01-30
    • 1970-01-01
    相关资源
    最近更新 更多