开发者

python convert str to list

开发者 https://www.devze.com 2023-02-07 17:45 出处:网络
How do i convert \'[update, /CoaddedRegriddedFrame[1]/OBJECT[1]/text()[1], Centaurus-AB]\' to a listof strings, eg.

How do i convert

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

to a list of strings, eg.

   ['update', '/CoaddedRe开发者_开发技巧griddedFrame[1]/OBJECT[1]/text()[1]', 'Centaurus-AB']


Without knowing more details about the input (do we really need to check if the brackets are there? commas are valid inside a field? ...) the simplest way probably is:

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


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

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

print strings

EDIT:

oops. you want strip.. strip only takes first and last chars. Replace well remove all

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

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

print strings


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']

Note that using text[1:-1] relies on the string starting and ending with brackets (or, at least, some throw-away character).

To get rid of the whitespace you could use strip():

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


There is probably a better way to do this, but the first way I think of is:

>>> 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']
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号