Есть ли в Python функция для разбиения строки без игнорирования пробелов? - PullRequest
12 голосов
/ 22 сентября 2008

Есть ли в Python функция для разбиения строки без игнорирования пробелов в результирующем списке?

например:

s="This is the string I want to split".split()

дает мне

>>> s
['This', 'is', 'the', 'string', 'I', 'want', 'to', 'split']

Я хочу что-то вроде

['This',' ','is',' ', 'the',' ','string', ' ', .....]

Ответы [ 4 ]

41 голосов
/ 22 сентября 2008
>>> import re
>>> re.split(r"(\s+)", "This is the string I want to split")
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split']

Использование круглых скобок в re.split () приводит к тому, что функция также возвращает разделители.

4 голосов
/ 22 сентября 2008

Я не думаю, что в стандартной библиотеке есть функция, которая делает это сама, но "раздел" подходит близко

Наилучшим способом, вероятно, является использование регулярных выражений (именно так я бы это делал на любом языке!)

import re
print re.split(r"(\s+)", "Your string here")
2 голосов
/ 20 апреля 2013

Глупый ответ только для чертовски этого:

mystring.replace(" ","! !").split("!")
1 голос
/ 22 сентября 2008

Сложность в том, что вы пытаетесь сделать, заключается в том, что вы не даете ему персонажа, на которого можно разделить. split () взрывает строку в символе, который вы ему предоставляете, и удаляет этот символ.

Возможно, это может помочь:

s = "String to split"
mylist = []
for item in s.split():
    mylist.append(item)
    mylist.append(' ')
mylist = mylist[:-1]

Грязно, но это поможет тебе ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...