Код:
from itertools import groupby
def split_with_spaces(lst):
# Группируем символы: если текущий и предыдущий символы равны пробелу, они относятся к одной группе.
words = [''.join(group) for key, group in groupby(lst, lambda x: x == ' ') if not key]
return [word + ' ' if word[-1] != ' ' else word for word in words]
# Исходный список
lst = ['D', 'a', 'y', ' ', 'm', 'i', 'c', 'e', ' ', 'Y', 'e', 'a', 'r', ' ', 'i', 's', ' ', 'a', ' ', 'm', 'i', 's', 't', 'a', 'k', 'e']
# Результат
result = split_with_spaces(lst)
print(result) # ['Day ', 'mice ', 'Year ', 'is ', 'a ', 'mistake']
т.е с сохранением пробела после слова, ибо через ''.join(list).split() он удаляется