我如何转换
'[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]'
到字符串列表,例如
['update', '/CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1]', 'Centaurus-AB']
答案 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']