python将str转换为列表

时间:2011-02-01 13:45:22

标签: python string

我如何转换

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

到字符串列表,例如

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

4 个答案:

答案 0 :(得分:8)

在不知道有关输入的更多细节的情况下(我们真的需要检查括号是否存在?逗号在字段内是否有效?...)最简单的方法可能是:

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

答案 1 :(得分:4)

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

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

print strings

编辑:

糟糕。你想要条带..条带只需要第一个和最后一个字符。更换好全部删除

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

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

print strings

答案 2 :(得分: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']

答案 3 :(得分: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']