String cut by a separator with the separator in the respective list element in python
You can exploit zip and iterators to allow you to pair things together:

data = [a + b for a, b in zip(*[iter(data)]*2)]




You could use just re, and change the separator with a look ahead assertion.

data = re.split(" (?=my_separator)", s)




You can use str.split, and just add the separator back:

sep = 'my_separator '
data = s.split(sep)[1:]
data = [sep + i for i in data]




data = [sep + i for i in s.split(sep)]