Python 为什么使用split(";)时会得到空字符串?

Python 为什么使用split(";)时会得到空字符串?,python,Python,使用.split()拆分字符串非常简单,因为这会忽略复数个空格,并将它们视为单个空格选项卡。 但是当使用string\u name.split(“”)时,加上空格,结果有些混乱。 试一试 返回一个包含所有单词和(n-1)个空字符串的列表,其中n是两个单词之间的单个空格数。 如果字符串包含一个完整的句子,那么空字符串的数量将比每个单词之间单个空格的数量少1 为什么会发生这种情况?空字符串的数量不应该是单个空格的一半吗?因为每个备用空格都会消失,因为它是split中的一个参数 文档实际上或多或少都有

使用.split()拆分字符串非常简单,因为这会忽略复数个空格,并将它们视为单个空格选项卡。 但是当使用
string\u name.split(“”
)时,加上空格,结果有些混乱。 试一试

返回一个包含所有单词和(n-1)个空字符串的列表,其中n是两个单词之间的单个空格数。 如果字符串包含一个完整的句子,那么空字符串的数量将比每个单词之间单个空格的数量少1

为什么会发生这种情况?空字符串的数量不应该是单个空格的一半吗?因为每个备用空格都会消失,因为它是split中的一个参数


文档实际上或多或少都有这样一个确切的例子:

如果给定sep,则连续分隔符不会分组在一起,并被视为分隔空字符串(例如,“1,2”。拆分(“,”)返回['1','','2'])


所以这种行为是故意的。至于原因,我们必须上一堂历史课,但回避的答案是“因为这就是它的实现方式”

split()函数将字符串按单词分隔,并忽略空格。如果你想用任何特定的字符分裂,那么它应该被称为分裂函数I-分裂(“”)的参数,然后考虑空间;否则函数将忽略它。

请使用代码块。从:如果给定sep,则连续分隔符不会分组在一起,并被视为分隔空字符串(例如,
'1,2'。拆分(',')
返回
['1',''2']
)。[…]如果未指定sep或sep为None,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果的开头或结尾将不包含空字符串。
string = "Hi   Raghav"
string.split(" ")