>

문자열에서 모두 '-'라고 말하고 싶습니다. 예 :

'h-e-o-k'

쉽게 제거 할 수 있습니다

str = str[::2]

또는 좋아

str = "-h-e-l-l-o" 

에 의해 제거 할 수 있습니다

str = str[::-1]
str = str[::2]
str = str[::-1]

문자열이 따라야 할 패턴이 있으면 동쪽으로 제거합니다. 그러나 아래의 경우 어떻게 제거 할 수 있습니까?

str = "-h-eo-k"

이와 같은 코드를 작성했지만 더 좋은 방법이 있는지 궁금합니다.

ans = ""
tmp = str
for ind in range(len(str)):
    x = tmp.find("-")
    if x != -1:
        ans += tmp[:x]
        tmp = tmp[x+1:]
    else:
        ans += tmp
        tmp = ""


  • 답변 # 1

    또는 간단히 :

    str = str.replace('-','')
    
    

  • 답변 # 2

    단일 문자열과 단일 문자 패턴으로 작업하는 경우 replace () 메소드 만 사용해야합니다.

    aString = "-h-e-l-l-o"
    aString = aString.replace("-","")
    # "hello"
    
    

    한 번에 여러 패턴을 제거해야하는 경우 정규 표현식 (re 모듈에서 re.sub ())을보고 싶을 수 있습니다.

  • 답변 # 3

    이 경우에 대한 매우 간단하고 간단한 해결책은 목록 변환을 사용하고 목록의 요소를 필터링 한 다음 문자열로 다시 묶어야합니다.

    >>> ostr="-h-eo-k"
    >>> "".join([x for x in list(ostr) if x != "-"])
    ‘heok'
    >>>
    
    

    하이픈 만 더 필터링하려면 다음과 같이 더 나은 조건을 사용할 수 있습니다.

    >>> import string as s
    >>> ostr="-h-eo-k"
    >>> "".join([x for x in list(ostr) if x in s.ascii_letters])
    ‘heok'
    >>>
    
    

  • 답변 # 4

    시도 : str = str.replace ( '-', '')

관련 자료

  • 이전 sql - 트리거 함수 및 IF 문 내에서 쿼리 결과 빼기
  • 다음 python - discordpy - attributeerror : 'nonetype'객체에 'create_ytdl_player'속성이 없습니다