x = ['*a', 'b', 'c', '*d', 'e', '*f', '*g']
partials = []
for element in x:
    if element.startswith('*'):
        partials.append([])
partials[-1].append(element)
concat = map(''.join, partials)
Operate on a list in a pythonic way when output depends on other elements