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

StackOverflow https://stackoverflow.com/questions/113534

  •  02-07-2019
  •  | 
  •  

Вопрос

Есть ли в 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]

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top