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.

Yashwanth Kumar
la source

Réponses:

118

Utilisez rpartition(s). Il fait exactement cela.

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

Petar Ivanov
la source
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
73
>>> "a b c,d,e,f".rsplit(',',1)
['a b c,d,e', 'f']
Gryphius
la source
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']
wRAR
la source