首页 > 解决方案 > 使用带有'splitlines()'的连续线边界

问题描述

我正在尝试在方法中使用连续的线边界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']

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

标签: pythonpython-3.xstringlistsplit

解决方案


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

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

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


推荐阅读