第一次出现时分裂

时间:2011-08-01 19:45:21

标签: python split

在第一次出现分隔符时拆分字符串的最佳方法是什么?

例如:

"123mango abcd mango kiwi peach"

拆分第一个mango以获取:

"abcd mango kiwi peach"

5 个答案:

答案 0 :(得分:413)

来自the docs

  

str.split([sep[, maxsplit]])

     

使用 sep 作为分隔符字符串,返回字符串中的单词列表。如果给出 maxsplit ,则最多 maxsplit 分割完成(因此,列表最多只有maxsplit+1个元素。)

s.split('mango', 1)[1]

答案 1 :(得分:60)

>>> s = "123mango abcd mango kiwi peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi peach'

答案 2 :(得分:22)

对我而言,更好的方法是:

s.split('mango', 1)[-1]

...因为如果发生该事件不在字符串中,您将获得“IndexError: list index out of range"

因此-1不会造成任何伤害,因为已经将出现次数设置为1。

答案 3 :(得分:2)

您也可以使用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个元素。

答案 4 :(得分:0)

df.columnname[1].split('.', 1)

这将以第一次出现的“。”分割数据。在字符串或数据框列值中。