web-dev-qa-db-fra.com

Fractionnement à la première occurrence

Quel serait le meilleur moyen de scinder une chaîne lors de la première occurrence d'un délimiteur?

Par exemple:

"123mango abcd mango kiwi Peach"

diviser sur le premier mango pour obtenir:

"abcd mango kiwi Peach"
259
Acorn

De les docs :

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

Renvoie une liste des mots de la chaîne en utilisant sep comme chaîne de délimitation. Si maxsplit est donné, au maximum maxsplit sont effectués (ainsi, la liste aura au plus maxsplit+1 éléments).

s.split('mango', 1)[1]
433
>>> s = "123mango abcd mango kiwi Peach"
>>> s.split("mango", 1)
['123', ' abcd mango kiwi Peach']
>>> s.split("mango", 1)[1]
' abcd mango kiwi Peach'
60
utdemir

Pour moi, la meilleure approche est la suivante:

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

... parce que s'il se produit que cette occurrence ne se trouve pas dans la chaîne, vous obtiendrez "IndexError: list index out of range"".

Par conséquent, -1 ne subira aucun préjudice, car le nombre d'occurrences est déjà défini sur un.

25
Alex