Есть ли функция в 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', ' ', .....]
Ответы
Ответ 1
>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']
Использование скобок для записи в re.split() заставляет функцию также возвращать разделители.
Ответ 2
Я не думаю, что в стандартной библиотеке есть функция, которая делает это сама по себе, но "раздел" близок
Лучшим способом, вероятно, является использование регулярных выражений (так я бы сделал это на любом языке!)
import re
print re.split(r"(\s+)", "Your string here")
Ответ 3
Глупый ответ просто для этого:
mystring.replace(" ","! !").split("!")
Ответ 4
Трудная часть с тем, что вы пытаетесь сделать, заключается в том, что вы не даете ей разделить символ. split() взрывает строку символа, который вы ему предоставляете, и удаляет этот символ.
Возможно, это может помочь:
s = "String to split"
mylist = []
for item in s.split():
mylist.append(item)
mylist.append(' ')
mylist = mylist[:-1]
Беспощадно, но это сделает трюк для вас...