如何将字符串分割成单词和空格?

3

我希望能将字符串 string = ['O little forests,'] 分割成单词和空格,并在最后一个单词后附加逗号。以下是所需输出的样式:

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

我使用 line.split() 将给定字符串拆分为不包含空格的单词列表。期待您的建议!


请修改您的问题并包含您尝试过的内容。它是否有效? - user10452693
2
在Python中使用split()和join()时保留空格 - 001
请分享您尝试过的 [MCVE],以便我们了解已经尝试过什么并失败了。这也确保我们不会在空中重复努力。 - r.ook
小修改: - nagymusic
4个回答

3

您可以使用按组

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']

2
您可以使用re(正则表达式):
import re

sentence = 'O little forests'

re.split("( )", sentence) # ['O', ' ', 'little', ' ', 'forests']

2
您可以使用以下代码中的 re 来完成此工作。
import re
string = ['O little forests'] 
for a  in string:
  print(re.split(r'(\s+)', a))

输出:

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

0

在列表推导式中,您可以像这样在每个单词之间添加一个空格元素:

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']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接