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.