diviser la chaîne en 2 en fonction de la dernière occurrence d'un séparateur


100

Je voudrais savoir s'il existe une fonction intégrée en python pour casser la chaîne en 2 parties, en fonction de la dernière occurrence d'un séparateur.

par exemple: considérez la chaîne "abc, d, e, f", après la séparation sur le séparateur ",", je veux la sortie comme

"abc, d, e" et "f".

Je sais comment manipuler la chaîne pour obtenir la sortie souhaitée, mais je veux savoir s'il existe une fonction intégrée en python.

Réponses:


118

Utilisez rpartition(s). Il fait exactement cela.

Vous pouvez également utiliser rsplit(s, 1).


11
Pas exactement: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan

@Vanuan, c'est exactement cela en fait. Renvoie aussi simplement le séparateur pour une raison ou une autre: str.rpartition (sep) Divise la chaîne à la dernière occurrence de sep et renvoie un 3-tuple contenant la partie avant le séparateur, le séparateur lui-même et la partie après le séparateur . Si le séparateur n'est pas trouvé, retournez un 3-tuple contenant deux chaînes vides, suivi de la chaîne elle-même.
Petar Ivanov

23
rsplit(s, 1)et la rpartition(s)sortie est différente, vous devez l'admettre.
Vanuan


54

Vous pouvez diviser une chaîne par la dernière occurrence d'un séparateur avec rsplit:

Renvoie une liste des mots de la chaîne, séparés par la chaîne de délimitation (en commençant par la droite).

Pour séparer par la dernière virgule:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.