string
  • methods
  • python-3.x
  • 2010-06-02 6 views 0 likes 
    0

    이 예제는 스택 오버플로에서 발견되었습니다. 나는 그것을 이해하지만 단순한 메소드 컨셉은 문자열에서 여러 개의 문자를 제거하는 것처럼 보인다.python3 : .replace()의 긴 체인이있는 문자열에서 여러 문자를 제거합니다. replace(). replace()

     
    s = "a,b,c,d,e,f,g,h,i" 
    s = s.strip([",", "d", "h"]) 
    

    대신 :

     
    import string 
    exclude = set(string.punctuation) 
    s = ''.join(ch for ch in s if ch not in exclude) 
    

    의 조정에 뭔가를 할 수있는 파이썬 3.1 내장 문자열 방법이있다

     
    s = s.replace(",", "").replace("d", "").replace("h", "") 
    

    답변

    2

    내가 동의하지 않는 그 예 당신 발견 된 것은 지나치게 복잡하다. 사용 사례의 경우 코드는 다음과 같이됩니다.

    s = ''.join(ch for ch in s if ch not in ",dh") 
    

    매우 간결 해 보입니다.

    s = s.translate(str.maketrans("", "", ",dh")) 
    

    면책 조항 : 그러나, 아주 약간 더 간결하고 효율적으로 할 수있는 대안이 내가 파이썬 3.1 인터프리터에 액세스 할 수 없기 때문에 실제로이 코드를 테스트하지 않았습니다. Python 2.6에서 테스트 한 결과는 다음과 같습니다.

    t = ''.join(chr(i) for i in range(256)) 
    s = s.translate(t, ",dh") 
    
    관련 문제