【问题标题】:Splitting empty string with space as a separator returns [''] [duplicate]用空格分割空字符串作为分隔符返回 [''] [重复]
【发布时间】:2014-12-16 14:27:45
【问题描述】:

这是正确的行为吗?

>>> ''.split(' ')
['']

不应该是一个空数组吗?我的意思是,空字符串中没有空格所以没有什么可以拆分的,应该是[],不是吗?

当我使用 None 作为分隔符时,它是空数组:

>>> ''.split()
[]

【问题讨论】:

    标签: python


    【解决方案1】:

    Python docs explicitly specify this behavior

    使用指定的分隔符拆分空字符串返回 ['']。

    【讨论】:

      【解决方案2】:

      我认为doc 已经解释了这种行为

      如果给定了 sep,则连续的分隔符不会组合在一起,并被视为分隔空字符串(例如, '1,,2'.split(',') 返回 ['1', '', '2'])。 sep 参数可能 由多个字符组成(例如,'123'.split('') 返回 ['1', '2', '3'])。使用指定的拆分空字符串 分隔符返回 ['']。

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

      【讨论】:

      • 嗯。战略。我刚刚阅读了这篇文档几次,我错过了那句话:“使用指定的分隔符分割一个空字符串返回 ['']。”
      • @RichardKnop 当然很奇怪......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 2012-09-22
      • 2016-12-26
      • 2021-06-16
      相关资源
      最近更新 更多