What's the recommended Python idiom for splitting a string on the last occurrence of the delimiter in the string? example:
# instead of regular split
>> s = "a,b,c,d"
>> s.split(",")
>> ['a', 'b', 'c', 'd']
# ..split only on last occurrence of ',' in string:
>>> s.mysplit(s, -1)
>>> ['a,b,c', 'd']
mysplit
takes a second argument that is the occurrence of the delimiter to be split. Like in regular list indexing, -1
means the last from the end. How can this be done?
I just did this for fun
Use
.rsplit()
or.rpartition()
instead:str.rsplit()
lets you specify how many times to split, whilestr.rpartition()
only splits once but always returns a fixed number of elements (prefix, delimiter & postfix) and is faster for the single split case.Demo:
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
To get the string from reverse.