Quelle serait la meilleure façon de diviser une chaîne lors de la première occurrence d'un délimiteur?
Par exemple:
"123mango abcd mango kiwi peach"
se divisant le premier mango
pour obtenir:
"abcd mango kiwi peach"
De la documentation :
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é, tout au plus maxsplit est effectué (ainsi, la liste aura au plus des
maxsplit+1
éléments).
s.split('mango', 1)[1]
maxsplit
nombre, le dernier élément de la liste contiendra le reste de la chaîne (y compris tous lessep
caractères / chaînes).la source
Pour moi, la meilleure approche est que:
... car si cela arrive, cette occurrence n'est pas dans la chaîne, vous obtiendrez "
IndexError: list index out of range"
.Par conséquent
-1
, aucun dommage ne sera causé, car le nombre d'occurrences est déjà défini sur un.la source
Vous pouvez également utiliser
str.partition
:L'avantage d'utiliser
str.partition
est qu'il va toujours retourner un tuple sous la forme:Ainsi, le déballage de la sortie est vraiment flexible car il y aura toujours 3 éléments dans le tuple résultant.
la source
Cela divisera les données avec la première occurrence de '.' dans la chaîne ou la valeur de colonne du bloc de données.
la source