Как разбить строку на слова и пробелы? - PullRequest
0 голосов
/ 25 октября 2018

Я бы хотел разделить string = ['O little forests,'] так, чтобы вывод содержал как слова, так и пробелы, с последней запятой, добавленной к последним словам.Вот как должен выглядеть желаемый результат:

output = ['O', ' ', 'little', ' ', 'forests,']

Мне удалось разбить заданную строку на список слов с пробелами, исключенными с помощью line.split().Я приветствую ваши предложения!

Ответы [ 4 ]

0 голосов
/ 25 октября 2018

Вы можете выполнить эту работу, используя re как следующий код.

import re
string = ['O little forests'] 
for a  in string:
  print(re.split(r'(\s+)', a))

Выход:

['O', ' ', 'little', ' ', 'forests']
0 голосов
/ 25 октября 2018

Вы можете добавить пробел между каждым словом, как это в понимании списка:

s = 'O little forest'
# puts ' ' element after each word.
st = [k for j in [[e, ' '] for e in s.split()] for k in j]
st.pop() # drop last.
st
>>> ['O', ' ', 'little', ' ', 'forest']
0 голосов
/ 25 октября 2018

Вы можете использовать re (regex):

import re

sentence = 'O little forests'

re.split("( )", sentence) # ['O', ' ', 'little', ' ', 'forests']
0 голосов
/ 25 октября 2018

Вы можете использовать groupby :

from itertools import groupby

sentence = 'O little forests'

result = [''.join(v) for k, v in groupby(sentence, key=str.isspace)]
print(result)

Выход

['O', ' ', 'little', ' ', 'forests']
...