user248237dfsf user248237dfsf - 4 years ago 206
Python Question

Splitting on last delimiter in Python string?

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']

takes a second argument that is the occurrence of the delimiter to be split. Like in regular list indexing,
means the last from the end. How can this be done?

Answer Source

Use .rsplit() instead:

s.rsplit(',', 1)


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

This method starts splitting from the right-hand-side of the string; by giving it a maximum, you get to split just the right-hand-most occurrences.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download