为什么\n没有被删除string.split()

Aja*_*Pai -1 python split python-3.x

我想知道为什么下面的第二个打印语句不会删除\n输出但第一个打印语句.

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

Ken*_*ton 5

.split()没有参数将在任何连续的空白字符的运行中拆分.

因此它会自动将"\n"视为单个2个字符的分隔符.

.split(' ')有了参数,现在只能在空格字符上专门拆分.

来自:https://docs.python.org/3.7/library/stdtypes.html#str.split

如果未指定sep或为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串.因此,将空字符串或仅由空格组成的字符串拆分为None分隔符将返回[].

除了奖金:.split()没有参数确保:

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

这两个都是非常好的节省时间.