len("".split(" ")) == 1显示True 的pythonic解释是什么?
为什么"".split("")收益率['']
>>> len("".split(" "))
1
>>> "".split(" ")
['']
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 21
str.split(sep)返回至少一个元素.如果在文本中找不到sep,则该元素是原始的未分割文本.
对于空字符串,当然永远不会找到sep分隔符,并且在文档中特别指出:
返回使用指定分隔符拆分空字符串
[''].
您可能会对None分隔符选项(默认值)的行为感到困惑:
如果未指定sep或者是
None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾处不包含空字符串.因此,将空字符串或仅包含空格的字符串与None分隔符分开返回[].
(强调我的).这使得str.split(None)该例外,而不是规则.