2014-02-16 40 views
-1

我正在寻找一种方法来获取一个字符串,并将其输出为每个字符拆分的列表?如何在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'] 

任何人都可以告诉我一个高效和相对简单的方法来做到这一点? 在此先感谢!

回答

6

将字符串传递给list,您将得到一个单字符字符串列表。

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

无需使用正则表达式。但是,这里有一个使用正则表达式的解决方案:'re.findall('。',sentence)' – falsetru

+0

谢谢大家回复! +1 –

6

使用list()

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

谢谢大家回复! +1 –

0

您还可以使用for环路上的字符串,如果你想要遍历每个字符。

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

应该导致:

h 
e 
l 
l 
o 

I 

a 
m 

c 
o 
o 
l 
相关问题