Teilen Sie die Zeichenfolge basierend auf dem letzten Auftreten eines Trennzeichens in 2 auf

100

Ich würde gerne wissen, ob es in Python eine eingebaute Funktion gibt, um die Zeichenfolge in zwei Teile zu zerlegen, basierend auf dem letzten Auftreten eines Trennzeichens.

Zum Beispiel: Betrachten Sie die Zeichenfolge "abc, d, e, f" nach dem Aufteilen über das Trennzeichen ",", ich möchte die Ausgabe als

"abc, d, e" und "f".

Ich weiß, wie man den String manipuliert, um die gewünschte Ausgabe zu erhalten, aber ich möchte wissen, ob es in Python eine eingebaute Funktion gibt.

Yashwanth Kumar
quelle

Antworten:

118

Verwenden Sie rpartition(s). Es macht genau das.

Sie können auch verwenden rsplit(s, 1).

Petar Ivanov
quelle
11
Nicht genau: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan
@ Vanuan, es ist genau das eigentlich. Gibt das Trennzeichen auch aus dem einen oder anderen Grund zurück: str.rpartition (sep) Teilen Sie die Zeichenfolge beim letzten Auftreten von sep und geben Sie ein 3-Tupel zurück, das das Teil vor dem Trennzeichen, das Trennzeichen selbst und das Teil nach dem Trennzeichen enthält . Wenn das Trennzeichen nicht gefunden wird, geben Sie ein 3-Tupel mit zwei leeren Zeichenfolgen zurück, gefolgt von der Zeichenfolge selbst.
Petar Ivanov
23
rsplit(s, 1)und rpartition(s)Ausgabe ist anders, müssen Sie zugeben.
Vanuan
73
>>> "a b c,d,e,f".rsplit(',',1)
['a b c,d,e', 'f']
Gryphius
quelle
54

Sie können eine Zeichenfolge nach dem letzten Auftreten eines Trennzeichens teilen mit rsplit:

Gibt eine Liste der Wörter in der Zeichenfolge zurück, die durch die Trennzeichenfolge getrennt ist (beginnend von rechts).

Durch das letzte Komma trennen:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
wRAR
quelle