【发布时间】:2014-12-16 14:27:45
【问题描述】:
这是正确的行为吗?
>>> ''.split(' ')
['']
不应该是一个空数组吗?我的意思是,空字符串中没有空格所以没有什么可以拆分的,应该是[],不是吗?
当我使用 None 作为分隔符时,它是空数组:
>>> ''.split()
[]
【问题讨论】:
标签: python
这是正确的行为吗?
>>> ''.split(' ')
['']
不应该是一个空数组吗?我的意思是,空字符串中没有空格所以没有什么可以拆分的,应该是[],不是吗?
当我使用 None 作为分隔符时,它是空数组:
>>> ''.split()
[]
【问题讨论】:
标签: python
Python docs explicitly specify this behavior
使用指定的分隔符拆分空字符串返回 ['']。
【讨论】:
我认为doc 已经解释了这种行为
如果给定了 sep,则连续的分隔符不会组合在一起,并被视为分隔空字符串(例如, '1,,2'.split(',') 返回 ['1', '', '2'])。 sep 参数可能 由多个字符组成(例如,'123'.split('') 返回 ['1', '2', '3'])。使用指定的拆分空字符串 分隔符返回 ['']。
如果 sep 未指定或为 None,则应用不同的分割算法:连续空白的运行被视为 单个分隔符,结果将不包含空字符串 如果字符串有前导或尾随空格,则开始或结束。 因此,拆分空字符串或仅由 带有 None 分隔符的空格返回 []。
【讨论】: