"123mango abcd mango kiwi peach"
第一次分割符
mango
获得:"abcd mango kiwi peach"
#1 楼
来自文档:str.split([sep[, maxsplit]])
使用sep作为分隔符字符串,返回字符串中单词的列表。如果指定了maxsplit,则最多完成maxsplit拆分(因此,列表中最多包含
maxsplit+1
个元素)。s.split('mango', 1)[1]
#2 楼
>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'
评论
@瑞士:那又怎样。技术仍然是相同的。
–伊格纳西奥·巴斯克斯(Ignacio Vazquez-Abrams)
2011年8月1日19:55
@Ignacio:我只是指出来。没有理由用部分正确的答案代替完全正确的答案。
–瑞士
2011年8月1日19:57
技术上假定正确的定界符。 “第一个”是[1]索引。我们都引用的那个当然是零位索引。 :D语义学。
–艾萨克·科贝特(Izaac Corbett)
17年11月15日在13:19
“值”参数必须是标量或字典,但是您传递了“列表”,我用s.split(“ mango”,1)[1]返回了此列表
– yuliansen
20-09-28在6:14
#3 楼
对我来说,更好的方法是:s.split('mango', 1)[-1]
...因为如果发生的情况不在字符串中,您将得到“
IndexError: list index out of range"
。因此
-1
不会受到任何伤害,因为已经将发生的次数设置为1。评论
如前所述,它是应用split()方法的次数。方法将仅找到并应用第一个“ mango”字符串。
– Alex
17年7月1日在6:57
#4 楼
您还可以使用str.partition
:>>> text = "123mango abcd mango kiwi peach"
>>> text.partition("mango")
('123', 'mango', ' abcd mango kiwi peach')
>>> text.partition("mango")[-1]
' abcd mango kiwi peach'
>>> text.partition("mango")[-1].lstrip() # if whitespace strip-ing is needed
'abcd mango kiwi peach'
使用
str.partition
的优点是它总是会返回以下形式的元组:(<pre>, <separator>, <post>)
因此,使输出的拆包变得非常灵活,因为结果元组中总是会有3个元素。
评论
如果某些行仅包含一个键,这对于从一行文本创建键值对非常有用,因为正如您指出的那样,您总是会得到一个元组:key,_,value = text_line.partition('' )
– PJ Singh
20 Dec 5'的16:51
#5 楼
df.columnname[1].split('.', 1)
这将拆分首次出现的'。'数据。在字符串或数据框列值中。
评论
注意:如果在达到最大拆分数之后可以执行更多拆分,则列表中的最后一个元素将包含字符串的其余部分(包括任何sep字符/字符串)。
– BuvinJ
19-09-10在13:01