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.

Odpowiedzi:


118

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

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


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,


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']
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.