Splitting on last delimiter in Python string?

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.

Splitting on last delimiter in Python string?

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.

Leave a Reply

Your email address will not be published.