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

时间:2015-05-25 11:41:59

标签: python string

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

如果不可能 - 例如,如果要指定限制我还必须指定模式 - 您能告诉我们如何指定默认模式吗?

3 个答案:

答案 0 :(得分:15)

这有效:

>>> 'a b c'.split(None, 1)
['a', 'b c']

docstring:

  

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

     

返回S中单词的列表,使用sep作为   分隔符字符串。如果给出maxsplit,最多是maxsplit   分裂完成。如果未指定sep或者为None,则为any   空白字符串是一个分隔符,空字符串是   从结果中删除。

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

>>> help('a'.split)

在IPython中只需使用问号:

In [1]:  s = 'a'
In [2]:  s.split?

我建议使用IPython,特别是Notebook。这使得这种探索更加方便。

答案 1 :(得分:3)

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

str.split(None, maxsplit)
  

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

     

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

答案 2 :(得分:0)

在连续空格上分割字符串最多 maxsplit ††

如果字符串具有前导或尾随空白,则结果列表将包含 no 前导或尾随空字符串("")。
††拆分从左到右。要以其他方式(从右到左)拆分,请使用str.rsplit()方法(需要Python 2.4 +)


Python 2

  

str.split(sep[, maxsplit]])

  使用str.split(None, maxsplit)

     

注意
  将sep指定为None ,而不指定 sep

     

str.split(None, -1) str.split() str.split(None)


Python 3

  

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

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

     

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

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