我有一个字符串
s = 'abcd qwrre qwedsasd zxcwsacds'
我想将任何字符串仅在第一个空格处拆分为两部分。 例如。 a ='abcd'
和b ='qwrre qwedsasd zxcwsacds'
如果我使用a,b = split(' ')
,它会给出错误,因为有太多的值需要拆分。a,b = split(' ',1)
。第二个参数1
是将执行的最大拆分次数。s = 'abcd efgh hijk'
a,b = s.split(' ', 1)
print(a) #abcd
print(b) #efgh hijk
有关字符串分割函数的更多信息,请参见手册中的str.split
。
来自Python文档
str.split(sep=None, maxsplit=-1)
使用sep作为分隔符字符串,返回字符串中的单词列表。如果给出了maxsplit,则最多进行maxsplit次拆分(因此,该列表最多将具有maxsplit + 1个元素)。如果未指定maxsplit或为-1,则对拆分数量没有限制(将进行所有可能的拆分)。
'1 2 3'.split(maxsplit=1)
# ['1', '2 3']
minsplit
会做什么。"something".split(minsplit=2)
的预期结果是什么? - Adam Smithstr.rsplit
-- 从右侧开始分割,而不是从左侧。 - Adam Smithpartition
,该方法搜索给定的分隔符并返回一个由三部分组成的元组,包括分隔符之前的字符串部分、分隔符本身以及之后的部分。>>> s = 'abcd qwrre qwedsasd zxcwsacds'
>>> s.partition(' ')
('abcd', ' ', 'qwrre qwedsasd zxcwsacds')
str.split
中使用 maxsplit
更好。 - Adam Smiths
中没有空格,这会更加方便,因为它仍然会返回一个3元组。 - Paul Panzer试试这个:
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
你的split函数缺少一个参数,即分割的次数,请尝试使用以下代码:
s='abcd qwrre qwedsasd zxcwsacds'
>>> a, b = s.split(' ', 1)
>>> print(a, b)
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)
s='abcd qwrre qwedsasd zxcwsacds'
a = s.split()
first, *second = a
second = " ".join(second)
“first”获取列表的第一个元素,“*second”获取剩余的元素。
>>> first
'abcd'
>>> second
'qwrre', 'qwedsasd', 'zxcwsacds'
因此,正如许多人指出的那样,您可以传递第二个参数:
>>> 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
#!python2
s='abcd qwrre qwedsasd zxcwsacds'
s1 = s[0: s.find(' ')]
s2 = s[s.find(' ') + 1: ]
print s1
print s2
'''
abcd
qwrre qwedsasd zxcwsacds
'''
maxsplit
参数:a, b = s.split(maxsplit=1)
。该参数用于指定分割字符串的次数,将字符串s
分割成最多maxsplit
个子字符串,并将它们存储在变量a
和b
中。 - Paul Panzer