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


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?

Answer Source

Use .rsplit() instead:

s.rsplit(',', 1)

Demo:

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