【问题标题】:Why do Python "".split() and "".split(",") produce a different result?为什么 Python "".split() 和 "".split(",") 会产生不同的结果?
【发布时间】:2015-04-13 01:17:00
【问题描述】:

这是我在 Python 中将 split() 应用于具有默认分隔符并使用 "," 作为分隔符的空字符串时的结果。

>>> print "".split(',')
['']
>>> print "".split()
[]

有人能解释一下为什么我们应该期待这种行为吗?

【问题讨论】:

  • 文档应该是“第一参考”。有人写的 - 尊重他们的时间/努力。
  • 我问是因为我在文档中找不到。如果这让您感到困扰,请不要回答。如果不提供任何参考,就没有必要发表这样的评论。
  • 然后改进搜索方法。 docs.python.org/2/library/string.html 是为“python str.split”找到的,然后是 Ctrl+F “split”并读取。几乎是LMGTFY。有些东西更难找到;但不是 Python 字符串 API 文档。

标签: python string split


【解决方案1】:

行为已记录在案(已添加重点):

拆分(...) S.split([sep [,maxsplit]]) -> 字符串列表

返回字符串 S 中的单词列表,使用 sep 作为 分隔符字符串。如果给定 maxsplit,最多 maxsplit 拆分完成。 如果 sep 未指定或为无,则任何 空白字符串是一个分隔符,空字符串被删除 结果。

只有在您指定分隔符时才会删除空字符串。

在 Python 的交互式提示中使用 help

$ python
Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s = ""
>>> s.split()
[]
>>> help(s.split)

这提供了上面引用的信息。

【讨论】:

  • 谢谢。这对我来说似乎很奇怪。我刚接触 Python 几天,这需要我几个小时才能弄清楚。
  • @trananhtuan 你试过 Python 的交互式帮助系统吗?查看答案的补充。
  • @John1024 不,我没有。感谢交互式帮助系统的帮助,我现在明白了。
猜你喜欢
  • 2018-12-30
  • 1970-01-01
  • 2017-02-21
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多