복붙노트

[PYTHON] 문자열에서 모든 구두점을 제거하는 방법? (파이썬) [복제]

PYTHON

문자열에서 모든 구두점을 제거하는 방법? (파이썬) [복제]

예 :

asking="hello! what's your name?"

내가 이걸 할 수 있을까?

asking.strip("!'?")

해결법

  1. ==============================

    1.정말 간단한 구현은 다음과 같습니다.

    정말 간단한 구현은 다음과 같습니다.

    out = "".join(c for c in asking if c not in ('!','.',':'))
    

    다른 유형의 구두점을 계속 추가하십시오.

    보다 효율적인 방법은

    import string
    stringIn = "string.with.punctuation!"
    out = stringIn.translate(stringIn.maketrans("",""), string.punctuation)
    

    편집 : 효율성 및 기타 구현에 대한 토론이 여기에 있습니다. 파이썬에서 문자열에서 구두점을 제거하는 가장 좋은 방법

  2. ==============================

    2.

    import string
    
    asking = "".join(l for l in asking if l not in string.punctuation)
    

    string.punctuation이있는 필터.

  3. ==============================

    3.이것은 효과가 있지만 더 나은 해결책이있을 수 있습니다.

    이것은 효과가 있지만 더 나은 해결책이있을 수 있습니다.

    asking="hello! what's your name?"
    asking = ''.join([c for c in asking if c not in ('!', '?')])
    print asking
    
  4. ==============================

    4.스트립이 작동하지 않습니다. 그 사이의 모든 인스턴스가 아니라 앞과 뒤의 인스턴스 만 제거합니다. http://docs.python.org/2/library/stdtypes.html#str.strip

    스트립이 작동하지 않습니다. 그 사이의 모든 인스턴스가 아니라 앞과 뒤의 인스턴스 만 제거합니다. http://docs.python.org/2/library/stdtypes.html#str.strip

    재미있는 필터 사용 :

    import string
    asking = "hello! what's your name?"
    predicate = lambda x:x not in string.punctuation
    filter(predicate, asking)
    
  5. from https://stackoverflow.com/questions/16050952/how-to-remove-all-the-punctuation-in-a-string-python by cc-by-sa and MIT license