Splitting on last delimiter in Python string? Splitting on last delimiter in Python string? python python

Splitting on last delimiter in Python string?


Use .rsplit() or .rpartition() instead:

s.rsplit(',', 1)s.rpartition(',')

str.rsplit() lets you specify how many times to split, while str.rpartition() only splits once but always returns a fixed number of elements (prefix, delimiter & postfix) and is faster for the single split case.

Demo:

>>> s = "a,b,c,d">>> s.rsplit(',', 1)['a,b,c', 'd']>>> s.rsplit(',', 2)['a,b', 'c', 'd']>>> s.rpartition(',')('a,b,c', ',', 'd')

Both methods start splitting from the right-hand-side of the string; by giving str.rsplit() a maximum as the second argument, you get to split just the right-hand-most occurrences.


You can use rsplit

string.rsplit('delimeter',1)[1]

To get the string from reverse.


I just did this for fun

    >>> s = 'a,b,c,d'    >>> [item[::-1] for item in s[::-1].split(',', 1)][::-1]    ['a,b,c', 'd']

Caution: Refer to the first comment in below where this answer can go wrong.


matomo