Ad

Delete Rest Of String After N-th Occurence

I have the following string:

a = "this.is.a.string"

I wish to delete everything after the 3rd '.' symbol so that it returns

trim(a)
>>> "this.is.a"

while a string without the 3rd '.' should return itself.

This answer (How to remove all characters after a specific character in python?) was the closest solution I could find, however I don't think split would help me this time.

Ad

Answer

.split() by the dot and then .join():

>>> ".".join(a.split(".")[:3])
'this.is.a'

You may also specify the maxsplit argument since you need only 3 "slices":

If maxsplit is given, at most maxsplit splits are done (thus, the list will have at most maxsplit+1 elements).

>>> ".".join(a.split(".", 3)[:-1])
'this.is.a'
Ad
source: stackoverflow.com
Ad