podziel ciąg na 2 na podstawie ostatniego wystąpienia separatora

100

Chciałbym wiedzieć, czy w Pythonie jest jakaś funkcja wbudowana, która dzieli ciąg na 2 części, na podstawie ostatniego wystąpienia separatora.

na przykład: rozważ ciąg „abc, d, e, f”, po separatorze podzielonym na „,”, chcę, aby dane wyjściowe były

„abc, d, e” i „f”.

Wiem, jak manipulować ciągiem, aby uzyskać żądane dane wyjściowe, ale chcę wiedzieć, czy w Pythonie jest jakaś funkcja wbudowana.

Yashwanth Kumar
źródło

Odpowiedzi:

118

Użyj rpartition(s). Robi dokładnie to.

Możesz także użyć rsplit(s, 1).

Petar Iwanow
źródło
11
Niezupełnie: „abc, d, e, f” .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan
@ Vanuan, to jest DOKŁADNIE to. Po prostu zwraca również separator z tego czy innego powodu: str.rpartition (sep) Podziel łańcuch w ostatnim wystąpieniu sep i zwróć 3-krotkę zawierającą część przed separatorem, sam separator i część po separatorze . Jeśli separator nie zostanie znaleziony, zwróć 3 krotkę zawierającą dwa puste ciągi, po których następuje sam ciąg.
Petar Iwanow
23
rsplit(s, 1)a rpartition(s)wydajność jest inna, musisz przyznać.
Vanuan,
73
>>> "a b c,d,e,f".rsplit(',',1)
['a b c,d,e', 'f']
Gryphius
źródło
54

Możesz podzielić ciąg według ostatniego wystąpienia separatora za pomocą rsplit:

Zwraca listę słów w ciągu oddzielonych łańcuchem ograniczającym (zaczynając od prawej).

Aby podzielić ostatnim przecinkiem:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
wRAR
źródło