Coding Challenge
π¬ Question: Given a Python string. How to split the string after the second occurrence of the separator (string or character)? In other words: how to ignore the first separator occurrence when splitting a string?

Here are three examples:
β₯οΈ Info: Are you AI curious but you still have to create real impactful projects? Join our official AI builder club on Skool (only $5): SHIP! - One Project Per Month
'a-b-c-d-e-f-g-h'andsep='-'should be split to['a-b', 'c', 'd', 'e', 'f', 'g', 'h']'a-b'andsep='-'should be split to['a-b']'helloxxxworldxxxpythonxxxisxxxgreat'andsep='xxx'should be split to['helloxxxworld', 'python', 'is', 'great']
Solution
You can split a string after the second occurrence of a given character in three steps:
- First, split the whole string using the separator sep in
s.split(sep). - Second, combine the first two elements of the resulting split list using the
sep.join()method call. - Third, use slicing and list concatenation to create a new result list.
The following code creates a function that takes as input a string s and a separator string sep and splits the string at the second occurrence:
def my_split(s, sep):
all_split = s.split(sep)
return [sep.join(all_split[0:2])] + all_split[2:]
print(my_split('a-b-c-d-e-f-g-h', '-'))
# ['a-b', 'c', 'd', 'e', 'f', 'g', 'h']
print(my_split('a-b', '-'))
# ['a-b']
print(my_split('helloxxxworldxxxpythonxxxisxxxgreat', 'xxx'))
# ['helloxxxworld', 'python', 'is', 'great']The code does multiple things.
First, it creates a list all_split by splitting the string s using separator sep. For example, when using it on string 'a-b-c-d-e-f-g-h' and sep='-', it would return ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'].
π Recommended Tutorial: Python String Split
Second, it combines the first two elements using the separator string sep between them by running sep.join(all_split[0:2]).
Recommended Tutorials: π
- Python String Join for
sep.join(...) - Python Slicing for
all_split[0:2]
Third, it puts the result into a list using the square bracket notation, i.e., we get a list with one string element ['a-b'] for our example.
π Recommended Tutorial: How to Create a Python List?
Fourth, you concatenate this list with the remaining all_split list, ignoring the first two split results, that are already merged to ignore the first split, by using the slicing expression all_split[2:].
In our example, we get ['a-b'] and ['c', 'd', 'e', 'f', 'g', 'h'] that concatenates to ['a-b', 'c', 'd', 'e', 'f', 'g', 'h'].
π Recommended Tutorials: List Concatenation in Python
Thanks for reading this short tutorial. To keep learning, feel free to join my 100% free email academy with cheat sheets and regular learning content!