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.

Antworten:


118

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

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


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


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']
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.