为什么\ n没有被剥离在string.split()中

时间:2018-07-21 00:44:43

标签: python python-3.x split

我想知道为什么下面的第二个打印语句不会删除输出中的\n而第一个打印语句会删除输出。{p>

   str1 = "Line1-abcdef \nLine2-abc \nLine4-abcd \ndfsdf"
    print (str1.split( ))
    print (str1.split(' ', 2))

1 个答案:

答案 0 :(得分:5)

.split()(不带参数)将在运行任何连续的空白字符时分裂。

因此它将自动将“ \ n”视为单个2个字符的分隔符。

.split(' ')带有参数,现在将专门用于空格字符。

发件人:https://docs.python.org/3.7/library/stdtypes.html#str.split

  

如果未指定sep或将其设置为None,则将应用不同的拆分算法:连续的空白行将被视为单个分隔符,并且如果字符串的开头或结尾处为空白,则结果将不包含空字符串空格。因此,使用空分隔符分割空字符串或仅包含空格的字符串将返回[]。

除奖金外,.split()不带任何参数可确保:

  • 预先剥离的令牌(没有尾随或前导空格)
  • 没有''(空)或任何空白令牌

这两个都是节省时间的实际方法。