2014-10-29 1 views
-2
나는이주고 싶어
def split(string,x): 
    if string == "": 
     return "" 
    if string[0] == x : 
     return split(string[1:],x) 
    return string[0]+[split(string[1:],x)] 

는 "ballooolam"와 "L"와 같은 문자열을 FUNC 나는이 FUNC가 돼 "나에게 ["바 "를주고 싶어 ","am "] 3 일간 생각하고 있어요파이썬 2.7.8 delimiter.how는

+2

string.split ('l')을 사용하지 않는 이유 ????? 또는이 운동이다 –

+0

그런 식으로 문제를 풀려고 생각하는 것이 좋지만 –

+0

죄송합니다. 나는 그게 무슨 뜻인지 이해하지 못합니다. –

답변

0

파이썬에서 문자를 분리하는 올바른 방법은 split 내장 문자를 사용하는 것입니다. 그것은 될 것입니다 이 시점에서 모든 내장 명령이기 때문에 그것은, 컴파일 된 C의 확장 당신이 파이썬에서 기본적으로 구현 무엇보다 빠른 많은 :

lst = "ballooolam".split("l") 

그러나이 question에서 논의 된 바와 같이,이 수도 있지 아주 기대하는대로하십시오. split 길이가 0 인 토큰이 있으면 목록에 빈 문자열을 남겨 둡니다. I.E. delimeter가 문자열의 첫 번째/마지막 위치에 있거나 두 delimeter가 서로 옆에있는 경우. 이렇게하면 word = 'l'.join(lst)을 수행하면 원래 값이 반환됩니다. 빈 문자열이 없으면 'ballooolam' 대신에 'balooolam'이 나옵니다. 당신이이 빈 문자열을 제거하려는 경우, 당신은 목록 - 이해와 쉽게 작업을 수행 할 수 있습니다

def splitter(string, x): 
    return [token for token in string.split(x) if token] 

if token은 빈 문자열은 'falsy'특정 문자열을 거부합니다.

def splitter(string, x): 
    return [token for token in string.split(x) if token.strip()] 

strip()는 문자열에서 선행/후행 공백을 제거합니다 : 당신은 또한 최종 목록에서 공백 전용 문자열을 제외하려는 경우, 당신은 약간의 비틀기와 함께 그렇게 할 수 있습니다. 공백 만있는 문자열의 경우이 문자열은 빈 문자열이되고 결과는 거짓이됩니다.

관련 문제