我有一个字符串
s = 'abcd qwrre qwedsasd zxcwsacds'
我想在第一次出现空格时仅将两个部分中的任何字符串拆分。 即。 a='abcd'
和b='qwrre qwedsasd zxcwsacds'
如果我使用a, b=split(' ')
它会给我一个错误,因为有太多值要解压缩。
答案 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)
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
'''