파이썬에서 문자열 바꾸기 | 파이썬 문자열 바꾸기 [2022]

게시 됨: 2021-01-02

Python에서 문자와 문자열을 바꾸는 것은 데이터 정리 또는 텍스트 처리와 관련하여 중요한 작업입니다. 데이터에 제거해야 하는 가비지 문자에 대한 형식 문제가 있을 수 있고, 범주에 철자 문제가 있을 수 있습니다. 또한 NLP 기반 문제에 대한 텍스트 사전 처리 중에 문자열 교체는 텍스트 데이터를 준비하는 동안 가장 기본적이고 중요한 단계입니다.

이 자습서에서는 다양한 유형의 문자열을 대체하는 여러 방법을 살펴보겠습니다. 데이터 과학에 관심이 있다면 데이터 과학 인증을 확인하십시오. 이 튜토리얼을 마치면 다음에 대한 지식을 갖게 될 것입니다.

  • 파이썬 교체() 메서드
  • 정규식 sub() 메서드
  • 조인() 및 필터()
  • 문자열의 숫자 데이터 바꾸기

목차

파이썬 교체()

replace ( old_str, new_str, count) 메서드는 3개의 인수로 구성됩니다.

  • old_str: 교체해야 하는 문자열 또는 문자열의 일부
  • new_str: 이전 문자열을 대체해야 하는 문자열
  • count: 특정 문자열을 교체해야 하는 횟수

작업을 이해하기 위해 몇 가지 예를 살펴보겠습니다.

단일 교체

Mystr = "샘플 문자열입니다."
Newstr = Mystr.replace( 'is' , 'was' )

#산출:
Twas는 샘플 문자열이었습니다.

기억하시겠지만, 파이썬의 문자열은 불변입니다. 따라서 replace 메서드를 호출하면 본질적으로 수정된 데이터로 다른 문자열 개체를 만듭니다. 또한 위의 예에서는 count 매개변수를 지정하지 않았습니다. 지정하지 않으면 replace 메서드가 문자열의 모든 항목을 대체합니다.

다중 교체

Mystr = "샘플 문자열입니다."
Newstr = Mystr.replace( "s" , "X" )

#산출:
ThiX iX a Xample Xstring

여러 번 처음 n개 항목 바꾸기

처음 N번만 원하는 경우

Mystr = "샘플 문자열입니다."
Newstr = Mystr.replace( "s" , "X" , 3 )

#산출:
ThiX iX a Xample 문자열

여러 문자열 대체

위의 예에서 우리는 하나의 문자열을 다른 횟수로 교체했습니다. 이제 동일한 큰 문자열에서 다른 문자열을 교체하려는 경우 어떻게 합니까? 이를 위한 효과적인 함수를 작성하고 동일한 방법을 사용하여 완료할 수 있습니다.

위의 예를 고려하지만 이제 "h", "is" 및 "ng"를 "X"로 바꾸고 싶습니다.

def MultipleStrings (mainStr, strReplaceList, newStr) :
# 교체할 문자열을 반복합니다.
strReplaceList 요소 : _
# 문자열이 메인 문자열에 있는지 확인
mainStr 요소인 경우 :
# 문자열 교체
mainStr = mainStr.replace(요소, newStr)

반환 mainStr

Mystr = "샘플 문자열입니다."
Newstr = MultipleStrings(Mystr, [ 'h' , 'is' , 'ng' ] , "X" )

#산출:
TXX X 샘플 strX

읽기: Python 자습서

정규식으로 바꾸기

Python의 regex는 특히 텍스트 데이터를 다루기 위한 모듈입니다. 하위 문자열 찾기, 문자열 바꾸기 등 무엇이든 상관없습니다. Regex에는 하위 문자열을 쉽게 찾고 교체/대체하는 sub() 함수가 있습니다. 구문과 몇 가지 사용 사례를 살펴보겠습니다.

regex.sub (pattern, replacement, original_string) 함수는 3개의 인수를 사용합니다.

  • 패턴: 일치하고 교체해야 하는 부분 문자열입니다.
  • 교체: 제자리에 넣어야 하는 문자열이거나 제자리에 배치해야 하는 값을 반환하는 호출 가능한 함수일 수 있습니다.
  • original_string: 하위 문자열을 대체해야 하는 기본 문자열입니다.

replace 메서드와 마찬가지로 regex는 수정된 문자열을 사용하여 다른 문자열 개체도 만듭니다. 몇 가지 실제 사례를 살펴보겠습니다.

공백 제거

공백은 특수 문자로 취급되어 다른 문자로 대체될 수 있습니다. 아래 예에서는 공백을 "X"로 교체하려고 합니다.

다시 수입
Mystr = "샘플 문자열입니다."
# Mystr의 모든 공백을 'X'로 바꿉니다.
Newstr = re.sub( r”\s+” , 'X' , Mystr)

#산출:
ThisXisXaXsampleXstring


보시다시피 모든 공백이 대체되었습니다. 패턴은 모든 공백 문자를 의미하는 r"\s+"로 지정됩니다.

모든 특수 문자 제거

모든 특수 문자를 제거하기 위해 모든 특수 문자와 일치하는 패턴을 전달합니다.

다시 수입
가져오기 문자열
Mystr = "Tempo@@&[(000)]%%$@@66isit$$#$%-+Str"
패턴 = r'[' + string.구두점 + ']'
# 문자열의 모든 특수 문자를 X로 바꿉니다.
Newstr = re.sub(패턴, 'X' , Mystr)

#산출:
템포XXXXX000XXXXXX66방문XXXXXXXXXStr

대소문자를 구분하지 않는 하위 문자열 제거

실제 데이터에서는 대문자와 소문자가 다른 동일한 단어의 여러 버전이 있을 수 있습니다. 그것들을 모두 제거하려면 패턴으로 모든 단어를 개별적으로 배치하면 효과적이지 않습니다. regex sub() 함수는 re.IGNORECASE 플래그를 사용하여 케이스를 무시합니다. 어떻게 작동하는지 봅시다.

다시 수입
Mystr = "이것은 샘플 Istring입니다."
# 문자열의 부분 문자열을 대소문자를 구분하지 않는 접근 방식으로 교체합니다.
Newstr = re.sub( r'is' , '**' , Mystr, flags=re.IGNORECASE)

#산출:
Th** ** 샘플 **트링

정규식을 사용하여 여러 문자 제거

regex 함수는 문자열에서 여러 문자를 쉽게 제거할 수 있습니다. 아래는 예시입니다.

다시 수입
Mystr = "샘플 문자열입니다."
패턴 = r'[hsa]'
# 문자열에서 'h', 'a' 및 'a' 문자 제거
Newstr = re.sub(패턴, " , Mystr)

#산출:
Ti i mple 트링

join()을 사용하여 바꾸기

문자를 제거하거나 교체하는 또 다른 방법은 문자열을 반복하고 특정 조건에 대해 확인하는 것입니다.

charList = [ 'h' , 's' , 'a' ]
Mystr = "샘플 문자열입니다."
# 문자열에서 목록의 모든 문자를 제거합니다.
Newstr = " .join((요소 charList 없는 경우 Mystr 의 요소에 대한 요소 ))

#산출:
Ti i mple 트링

join() 및 filter()를 사용하여 바꾸기

위의 예는 필터 기능을 사용하여 수행할 수도 있습니다.

Mystr = "샘플 문자열입니다."
charList = [ 'h' , 's' , 'a' ]
# 문자열에서 목록의 모든 문자를 제거합니다.
Newstr = "" .join(filter( lambda k: k charList에 없음 , Mystr))

#산출:
나는 충분히 노력하고있다

필독: 실세계의 매혹적인 Python 응용 프로그램

숫자 바꾸기

여러 번 숫자 데이터는 다른 기능으로 별도로 제거 및 처리해야 할 수도 있는 문자열에도 있습니다. 이를 구현하는 방법을 알아보기 위해 몇 가지 예를 살펴보겠습니다.

정규식 사용

숫자 데이터를 제거해야 하는 아래 문자열을 고려하십시오.

Mystr = "20xx년의 샘플 string9211"
패턴 = r'[0-9]'
# 문자열의 모든 숫자를 일치시키고 빈 문자열로 바꿉니다.
Newstr = re.sub(패턴, "" , Mystr)

#산출:
xx 연도의 샘플 문자열

위의 코드에서 일치 패턴 r'[0-9]' 를 사용 하여 모든 숫자를 일치시킵니다.

Join() 함수 사용

문자열을 반복하고 알파벳에 대해 False반환 하는 isdigit() 메서드를 사용하여 숫자를 필터링할 수도 있습니다 .

Mystr = "20xx년의 샘플 string9211"
# 문자열의 문자를 반복하고 숫자를 제외한 모든 문자를 결합합니다.
Newstr = "" .join(( item.isdigit()이 아닌 경우 Mystr 의 항목 대한 항목 ))

#산출:
xx 연도의 샘플 문자열

조인() 및 필터() 사용

마찬가지로 필터 함수에 필터링 조건을 넣어 True 를 반환하는 문자만 반환할 수도 있습니다 .

Mystr = "20xx년의 샘플 string9211"

# 문자열의 문자에서 모든 숫자를 필터링하고 나머지 문자를 결합합니다.
Newstr = "" .join(filter( 람다 항목: item.isdigit(), Mystr)이 아님 )

#산출:
xx 연도의 샘플 문자열

가기 전에

문자열에서 문자/공백/숫자를 제거하거나 바꾸는 다양한 방법을 보여주는 많은 예를 다루었습니다. 위의 예를 수행하기 위해 더 많은 예와 다른 방법을 시도하고 자신의 예를 더 많이 시도하는 것이 좋습니다.

python, 데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링을 제공하는 IIIT-B & upGrad의 데이터 과학 이그 제 큐 티브 PG 프로그램을 확인하십시오. , 업계 멘토와 1:1, 최고의 기업과 400시간 이상의 학습 및 취업 지원.

Python에서 문자열 교체 방법이 필요한 이유는 무엇입니까?

이 기능은 데이터 정리 기술을 적용할 때 매우 유용합니다. 이 기능을 사용하여 필요하지 않거나 불필요한 문자를 쉽게 제거할 수 있습니다. 문자열이나 문자의 교체는 데이터 정리뿐만 아니라 NLP의 처리 문제에서도 사용됩니다.
전체 데이터 과학 분야가 방대한 양의 데이터를 다루기 때문에 이러한 유형의 문자열 처리 방법을 사용하는 것이 중요합니다.

문자열 데이터 유형을 사용하면 어떤 이점이 있습니까?

문자열은 이 데이터 유형을 사용하여 쉽게 많은 양의 데이터를 저장할 수 있으므로 유용합니다. Python은 문자열에 대한 작업을 수행하는 데 유용한 메서드를 많이 지원합니다. 또한 문자열은 Python에서 변경 가능하므로 오류 생성이 줄어들고 비용도 저렴합니다.
문자열은 파이썬에서 가장 많이 사용되는 내장 데이터 유형 중 하나입니다. 파이썬뿐만 아니라 다른 많은 언어에서도 이를 미리 정의된 데이터 유형으로 지원하고 이에 대한 다양한 작업 방법을 지원합니다.