在Python中仅通过第一个空格拆分字符串

98

我有一个字符串,例如:"238 NEO Sports"。我要将此字符串仅在第一个空格处拆分。输出应为["238","NEO Sports"]

我能想到的一种方法是使用split(),最后合并返回的最后两个字符串。还有更好的方法吗?


re.sub(r'^[^\s]+', r'\1', s) - user1467267
4个回答

181

只需将计数作为第二个参数传递给str.split函数即可。

>>> s = "238 NEO Sports"
>>> s.split(" ", 1)
['238', 'NEO Sports']

38

11
这是唯一适用于任何空白字符(如制表符)的答案。+1 - PolyMesh
1
我认为将参数集提供给其默认值,只是为了转到下一个可直接作为关键字参数访问的参数,这确实是一种不好的风格。Shubham Gupta 的更好的答案是:"238 NEO Sports".split(maxsplit=1) - pabouk - Ukraine stay strong
1
@pabouk 通常我会同意,但这样做的缺点是它只适用于Python 3.3+。如果你想编写一个可以在Python 2和Python 3上以相同方式工作的跨兼容代码,你必须像这样做。请注意,这个答案是7年前的。 - wim

5

使用内置术语,这将有助于以后参考时记忆。当有疑问时,请始终优先选择string.split(shift+tab)。

string.split(maxsplit = 1)

3
使用string.split()
string = "238 NEO Sports"
print string.split(' ', 1)

输出:

['238', 'NEO Sports']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接