2013-05-03 3 views
-1

문자열의 형식은 다음과 같습니다.파이썬으로 나누기

A1:::x1:::B1.A2:::x2::x3::x4:::B2.A3:::x5::x6::x7:::B3. 

분할 후의 출력되어야

['x1:::B1', 'x2::x3::x4:::B2', 'x5::x6::x7:::B3'] 

참고

A는, X가 :::
  • X1로 구분
    • , X2가 .... XN :: 의해 분리
    • x, B는 :::
    • B는 A를 만 두 번째 요소를 유지 ::: 한 번 분할 .
  • +1

    그리고 당신이 지금까지 짝을 무엇을하려고 했습니까? 그게 무슨 문제 야? 당신은 여기있는 사람들이 (나 같은) 당신의 숙제를 끝내라는 요청이 아닌, 당신이 어떤 노력을 보여주기를 바랍니다. –

    +0

    @Puciek : 그것은 내 의도가 아니 었습니다. 그러나 일반적으로 귀하의 제안에 감사드립니다. – Srik

    답변

    2

    당신이 .이 (빈 항목을 제거)에 첫번째 분할 할 것 나에게 보이는 의해 separared된다. 코드에서, 그 다음과 같습니다

    코멘트에서 언급 한 바와 같이
    s = 'A1:::x1:::B1.A2:::x2::x3::x4:::B2.A3:::x5::x6::x7:::B3.' 
    slist = (substr for substr in s.split('.') if substr) 
    result = [x.split(":::",1)[1] for x in slist] 
    

    , 우리는 더 간결이를 명시 할 수 있습니다

    result = [x.split(":::",1)[1] for x in s.split('.') if x] 
    
    +0

    +1하지만 s.split ('.')의 x에 대해'[x.split (":::", 1) [1]을 수행합니다. ' – jamylak

    +0

    @jamylak - 예, 그것을하지 않습니까 :). 감사. 첫 번째 버전은 자연스럽게 텍스트의 로직 흐름을 따라 가면서 조금 더 자연스럽게 떠날 것 같지만 업데이트도 포함 할 것입니다. 제가 첫 번째 버전에 대해 좋아하는 또 다른 점은'::: '로 2 개로 나눌 수있는 요소를 얻는 것을 확인하기 위해 검증을 추가하는 것이 조금 더 쉽다는 것입니다. – mgilson