如何在python 2.7中保留空格中拆分此字符串?

时间:2014-02-16 08:40:59

标签: python regex string list python-2.7

我正在寻找一种方法来取一个字符串并将其作为列表输出,每个字符分开?

>>> sentence = 'hello I am cool'
>>> what_i_want(sentence)
['h', 'e', 'l', 'l', 'o', ' ', 'I', ' ', 'a', 'm', ' ', 'c', 'o', 'o', 'l']

然而,这似乎不起作用:

>>> sentence = 'hello I am cool'
>>> sentence = ' '.join(sentence).split()
>>> print sentence
['h', 'e', 'l', 'l', 'o', 'I', 'a', 'm', 'c', 'o', 'o', 'l']

它不打印中间的空间!此外,这不起作用:

>>> import re
>>> splitter = re.compile(r'(\s+|\S+)')
>>> sentence = 'hello I am cool'
>>> splitter.findall(sentence)
['hello', ' ', 'I', ' ', 'am', ' ', 'cool']
>>> sentence = ' '.join(sentence)
>>> splitter.findall(sentence)
['h', ' ', 'e', ' ', 'l', ' ', 'l', ' ', 'o', '   ', 'i', '   ', 'a', ' ', 'm', '   ', 'a', ' ', 'j']

有人能告诉我一个有效且相对简单的方法吗? 提前谢谢!

3 个答案:

答案 0 :(得分:6)

将字符串传递给list,您将获得单字符字符串列表。

>>> sentence = 'hello I am cool'
>>> list(sentence)
['h', 'e', 'l', 'l', 'o', ' ', 'I', ' ', 'a', 'm', ' ', 'c', 'o', 'o', 'l']

答案 1 :(得分:6)

使用list()

>>> list(sentence)
['h', 'e', 'l', 'l', 'o', ' ', 'I', ' ', 'a', 'm', ' ', 'c', 'o', 'o', 'l']

答案 2 :(得分:0)

如果要迭代每个字符,也可以在字符串上使用for循环。

for chr in 'hello I am cool':
    print(chr)

应该导致:

h
e
l
l
o

I

a
m

c
o
o
l