仅将字符串拆分为两部分

时间:2018-06-14 02:26:25

标签: python split

我有一个字符串

s = 'abcd qwrre qwedsasd zxcwsacds'

我想在第一次出现空格时仅将两个部分中的任何字符串拆分。 a='abcd'b='qwrre qwedsasd zxcwsacds'

如果我使用a, b=split(' ')它会给我一个错误,因为有太多值要解压缩。

9 个答案:

答案 0 :(得分:20)

您可以使用a,b = split(' ', 1)

第二个参数1是要完成的最大分割数。

s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk

有关字符串拆分功能的更多信息,请参阅str.split in the manual

答案 1 :(得分:11)

来自Python docs

  

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

     

使用sep作为分隔符,返回字符串中单词的列表   串。如果给出maxsplit,则最多完成maxsplit分割(因此,   该列表最多只有maxsplit + 1个元素)。如果没有maxsplit   指定或-1,然后分割数量没有限制(全部   可能的分裂)。

'1 2 3'.split(maxsplit=1)
# ['1', '2 3']

答案 2 :(得分:10)

您可以使用标准字符串方法partition来搜索给定的分隔符并返回一个由它之前的字符串部分,分隔符本身以及之后的部分组成的3元组。

>>> s = 'abcd qwrre qwedsasd zxcwsacds'
>>> s.partition(' ')
('abcd', ' ', 'qwrre qwedsasd zxcwsacds')

答案 3 :(得分:5)

您在分组中再错过一个参数,即出现次数,请尝试此操作;

s='abcd qwrre qwedsasd zxcwsacds'
>>> a, b = s.split(' ', 1)
>>> print(a, b)

答案 4 :(得分:3)

您可以使用python" star expression"来解决此问题。

s='abcd qwrre qwedsasd zxcwsacds'
a = s.split()
first, *second = a
second = " ".join(second)

"第一"获取列表的第一个元素" *第二"采取其余的元素。

>>> first
'abcd'
>>> second
'qwrre', 'qwedsasd', 'zxcwsacds'

答案 5 :(得分:3)

试试这个:

s = 'abcd qwrre qwedsasd zxcwsacds'
s1 = s.split()[0]
s2 = ' '.join(s.split()[1:])
print(s1)
print(s2)

输出:

abcd
qwrre qwedsasd zxcwsacds

或者:

new_s = ''.join([' s ' if i.isspace() else i for i in s])
a,b = new_s.replace(' s','',1).split(' s ')
print(a)
print(b)

输出:

abcd
qwrre qwedsasd zxcwsacds

或者甚至更好地分割标签和换行符:

a,b = s.split(None,1)
print(a)
print(b)

输出:

abcd
qwrre qwedsasd zxcwsacds

答案 6 :(得分:2)

1.你可以像这样拆分字符串。

a = temp.substring(0, s.indexOf(' '));
b = temp.substring(s.indexOf(' ') + 1);

2.或者你可以这样做:

a = s[0: s.find(' ')]
b = s[s.find(' ') + 1: ]

3。

a,b = s.split(' ', 1)
print(a)
print(b) 

答案 7 :(得分:2)

所以,正如许多人所指出的那样,你可以传递第二个参数:

>>> a, b = "foo bar".split(' ', 1)

但没有人指出这一点:

>>> a, b = "foobar".split(' ', 1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack

你不想使用它,因为它是不安全的,除非你保证有一个只有一个空格的字符串。最好将它拆分,然后检查你有多少拆分然后解压缩它们:

>>> parts = "foo bar".split(' ', 1)
>>> if len(parts) == 2:
>>>    a, b = parts 

答案 8 :(得分:1)

#!python2

s='abcd qwrre qwedsasd zxcwsacds'

s1 = s[0: s.find(' ')]
s2 = s[s.find(' ') + 1: ]

print s1
print s2
'''
abcd
qwrre qwedsasd zxcwsacds
'''