Есть ли в Python функция для разделения строки, не игнорируя пробелы?
Вопрос
Есть ли в Python функция для разделения строки, не игнорируя пробелы в результирующем списке?
Например:
s="This is the string I want to split".split()
дает мне
>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']
Я хочу что-то вроде
['This',' ','is',' ', 'the',' ','string', ' ', .....]
Решение
>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']
Использование захватывающих круглых скобок в re.split() приводит к тому, что функция также возвращает разделители.
Другие советы
Я не думаю, что в стандартной библиотеке есть функция, которая делает это сама по себе, но «раздел» близок к этому.
Лучший способ, вероятно, — использовать регулярные выражения (как я бы сделал это на любом языке!)
import re
print re.split(r"(\s+)", "Your string here")
Глупый ответ просто так:
mystring.replace(" ","! !").split("!")
Самое сложное в том, что вы пытаетесь сделать, заключается в том, что вы не даете этому персонажу, на который можно было бы разделить.Split() разбивает строку на указанный вами символ и удаляет этот символ.
Возможно, это может помочь:
s = "String to split"
mylist = []
for item in s.split():
mylist.append(item)
mylist.append(' ')
mylist = mylist[:-1]
Грязно, но это поможет вам...