2011-02-01 2 views
1

어떻게 내가 예를 들어 문자열 목록에 파이썬 변환 STR은

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

을 변환합니까 나열합니다. text[1:-1]를 사용하여 시작하고 괄호 (또는 적어도 일부 던져 - 멀리 문자)로 끝나는 문자열에 의존

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

입력 문자열은 잘 정의 된 형식입니까 아니면 사용자 정의입니까? – tokland

답변

8

입력에 대한 자세한 내용을 모른 채 (우리가 정말 괄호가이 있는지 확인해야하나요 쉼표가 필드 내에서 유효합니다?. ..) 가장 간단한 방법은 아마도 :

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

+1 목록 이해력 사용 – armonge

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

참고.

는 당신이 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 

편집 :

죄송합니다. 당신은 스트립을 원해. 스트립은 첫 번째와 마지막 문자만을 가져 간다. 잘 대체하십시오 모두를 제거하십시오

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

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

print strings 
관련 문제