2011-02-01 195 views
1

如何转换蟒蛇转换STR列出

'[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]' 

到字符串列表,例如。

['update', '/CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1]', 'Centaurus-AB'] 
+0

输入字符串是一个明确的格式或自定义? – tokland 2011-02-01 13:53:28

回答

8

不知道关于输入更多的细节(我们真的需要检查,如果括号内是有逗号是有效的一个领域里面?。 ..)最简单的方法可能是:

>>> [s.strip() for s in input_line[1:-1].split(',')] 
['update', '/CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1]', 'Centaurus-AB'] 
+2

+1使用列表理解 – armonge 2011-02-01 13:55:33

2
In [12]: text='[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]' 
In [17]: text[1:-1].split(',') 
Out[17]: ['update', ' /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1]', ' Centaurus-AB'] 

注意,使用text[1:-1]依赖于启动和与支架(或者,至少,一些扔掉的字符)结束的字符串。

为了摆脱空白的,你可以使用strip()

In [18]: [elt.strip() for elt in text[1:-1].split(',')] 
Out[18]: ['update', '/CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1]', 'Centaurus-AB'] 
2

有可能是一个更好的方式来做到这一点,但第一个方式,我想到的是:

>>> y = '[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]' 
>>> y = y.split(',') 
>>> y[0] = y[0].lstrip('[') 
>>> y[-1] = y[-1].rstrip(']') 
>>> y 
['update', ' /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1]', ' Centaurus-AB'] 
4
strings = '[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]' 

strings = strings.replace("[", "").split(',') 

print strings 

编辑:

哎呀。你想strip .. strip只需要第一个和最后一个字符。替换好删除全部

strings = '[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]' 

strings = strings.strip("[]", "").split(',') 

print strings