我想在空格(默认行为)上拆分字符串,但我希望它只拆分一次 - 即。我希望它返回一个最多包含2个项目的数组。
如果不可能 - 例如,如果要指定限制我还必须指定模式 - 您能告诉我们如何指定默认模式吗?
答案 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)
†如果字符串具有前导或尾随空白,则结果列表将包含 no 前导或尾随空字符串(""
)。
††拆分从左到右。要以其他方式(从右到左)拆分,请使用str.rsplit()
方法(需要Python 2.4 +)
使用
str.split(sep[, maxsplit]])
str.split(None, maxsplit)
注意:
将sep
指定为None
≝,而不指定sep
str.split(None, -1)
≝str.split()
≝str.split(None)
选项A:坚持使用位置参数(Python 2选项):
str.split(sep=None, maxsplit=-1)
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']