为什么len(“.split”(“分割”)给出1?python

为什么len(“.split”(“分割”)给出1?python,python,string,Python,String,对于len(“.split(”)==1显示True,python解释是什么 为什么“”.split(“”产生[“”] str.split(sep)返回至少一个元素。如果文本中未找到sep,则该元素为原始的未拆分文本 对于空字符串,sep分隔符当然永远找不到,并且在文档中特别指出: 使用指定的分隔符拆分空字符串将返回[“”] 您可能对None分隔符选项(默认值)的行为感到困惑: 如果未指定sep或sep为None,则会应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格

对于
len(“.split(”)==1
显示True,python解释是什么

为什么
“”.split(“”
产生
[“”]

str.split(sep)
返回至少一个元素。如果文本中未找到sep,则该元素为原始的未拆分文本

对于空字符串,sep分隔符当然永远找不到,并且在文档中特别指出:

使用指定的分隔符拆分空字符串将返回
[“”]

您可能对
None
分隔符选项(默认值)的行为感到困惑:

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


(我的重点)。这使得str.split(None)成为例外,而不是规则。

这可能与:

split()设计为与join()相反,并且:


它告诉您生成的列表的长度,而不是字符串的长度。

[]的长度为零。如果列表中包含任何内容,任何内容,它都会有一个
长度>=1。在本例中,[''有一个元素:空字符串。所以它给出了一个很好的解释和品种的怪癖!这并不能回答问题,因为对于空列表,
”。join([])==”
,也是如此。
>>> len("".split(" "))
1
>>> "".split(" ")
['']
" ".join([""]) == ""