Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python, как разделить элементы списка с сохранением пробела

Yaroslav Kuzmin Знаток (392), открыт 2 недели назад
Как
 ['D', 'a', 'y', ' ', 'm', 'i', 'c', 'e', ' ', 'Y', 'e', 'a', 'r', ' ', 'i', 's', ' ', 'a', ' ', 'm', 'i', 's', 't', 'a', 'k', 'e'] 
разбить на

 ['Day ', 'mice ', 'Year ', 'is ', 'a ', 'mistake'] 

т.е с сохранением пробела после слова, ибо через ''.join(list).split() он удаляется
1 ответ
Вертолётов 625 Мудрец (13323) 2 недели назад
Код:
 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']
Yaroslav KuzminЗнаток (392) 2 недели назад
Спасибо!
Похожие вопросы