Python:str.split() - 是否可以只指定"limit"参数?

Som*_*ing 5 python string

我想在空格上拆分一个字符串(默认行为),但我希望它只拆分一次 - 也就是说我希望它返回一个最多包含2个项目的数组.

如果不可能 - 即如果为了指定限制我还必须指定模式 - 你能告诉我们如何指定默认模式吗?

Mik*_*ler 15

这有效:

>>> 'a b c'.split(None, 1)
['a', 'b c']
Run Code Online (Sandbox Code Playgroud)

文档字符串:

S.split(sep = None,maxsplit = -1) - >字符串列表

使用sep作为分隔符字符串,返回S中单词的列表.如果给出maxsplit,则最多完成maxsplit分割.如果未指定sep或为None,则任何空格字符串都是分隔符,并从结果中删除空字符串.

您应该在交互式提示中进行探索:

>>> help('a'.split)
Run Code Online (Sandbox Code Playgroud)

在IPython中只需使用问号:

In [1]:  s = 'a'
In [2]:  s.split?
Run Code Online (Sandbox Code Playgroud)

我建议使用IPython,尤其是Notebook.这使得这种探索更加方便.


sir*_*rfz 5

如果您指定None为分隔符,您将获得默认行为:

str.split(None, maxsplit)
Run Code Online (Sandbox Code Playgroud)

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

返回字符串 S 中的单词列表,使用 sep 作为分隔符字符串。如果给出 maxsplit,则最多完成 maxsplit 分割。如果未指定 sep 或为 None,则任何空白字符串都是分隔符,并且将从结果中删除空字符串。


Yen*_*ang 5

在连续空格\xe2\x80\xa0上分割字符串,最多maxsplit\xe2\x80\xa0\xe2\x80\xa0

\n\n

\xe2\x80\xa0如果字符串具有前导或尾随空格,则结果列表将包含前导或尾随空字符串 ( )\n \xe2\x80\xa0\xe2\x80\xa0从左到右进行拆分。要以另一种方式(从右到左)分割,请使用该方法(需要 Python 2.4+)""
str.rsplit()

\n\n
\n\n

蟒蛇2

\n\n
\n

str.split(sep[, maxsplit]])

\n 使用str.split(None, maxsplit)

\n\n

注意:
\n 指定sepNone \xe2\x89\x9d未指定sep

\n\n

str.split(None, -1) \xe2\x89\x9d str.split() \xe2\x89\x9d str.split(None)

\n
\n\n
\n\n

蟒蛇3

\n\n
\n

str.split(sep=None, maxsplit=-1)

\n 选项 A:坚持使用位置参数(Python 2 选项):str.split(None, maxsplit) \n
>>> \' 4 2 0 \'.split(None, 420)\n[\'4\', \'2\', \'0\']\n

\n\n

选项 B(个人偏好,使用关键字参数):\n str.split(maxsplit=maxsplit)

>>> \' 4 2 0 \'.split(maxsplit=420)` \n[\'4\', \'2\', \'0\']\n

\n

\n