@Crowcloud

Как использовать .split, сохранив символы-разделители в выводе?

В книге "Сам себе программист" (Кори Альтхофф) есть задача.
Примитивная, но с ней возникла проблема.

Вызовите метод, который превращает строку 'Где это? Кто это? Когда это?' в список ['Где это?', 'Кто это?', 'Когда это?']


Речь явно о .split
Но если a = 'Где это? Кто это? Когда это?', то:

print(a.split(' '))
#output['Где', 'это?', 'Кто', 'это?', 'Когда', 'это?']

print(a.split('?'))
#output['Где это', ' Кто это', ' Когда это', '']

print(a.split('? '))
#output['Где это', 'Кто это', 'Когда это?']

А т.к. "Где это" != "Где это?" и "Кто это" != "Кто это?",условие задачи не выполнено.

Что я делаю не так?
Как это делается правильно?
  • Вопрос задан
  • 376 просмотров
Решения вопроса 2
kocherman
@kocherman
import re
res = list(filter(None, re.split('([^?]+\?)','Где это? Кто это? Когда это?')))
print(res)
Ответ написан
@Drill
a = 'Где это? Кто это? Когда это?'
b = [f'{line.strip()}?' for line in a.split('?') if line]

print(b)

['Где это?', 'Кто это?', 'Когда это?']
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы