Python을 사용하여 문자열의 문자를 바꾸는 방법

이 튜토리얼에서는 내장 문자열 메서드, 정규식 등을 사용하여 Python 문자열의 문자를 바꾸는 다양한 방법을 다룹니다.

Python의 문자열은 일련의 유니코드 문자를 저장하는 내장 데이터 구조입니다. 목록 및 사전과 같은 일부 Python 데이터 구조와 달리 문자열은 변경할 수 없습니다. 즉, 기존 문자열을 수정할 수 없습니다.

그러나 문자열 작업 시 선행 및 후행 공백 제거, 대문자 변경, 문자 교체 등 문자열을 조작하고 싶을 수도 있습니다.

그렇다면 Python 문자열을 어떻게 조작합니까? 그리고 Python 문자열의 문자를 어떻게 바꾸나요? 이 튜토리얼에서는 다음 사항에 중점을 두고 이러한 질문에 답할 것입니다.

  • Python 문자열의 불변성
  • 문자열 조작을 위한 Python 문자열 메서드
  • 문자열의 문자를 바꾸는 다양한 방법

시작하자…

Python 문자열의 불변성

언급했듯이 Python 문자열은 변경할 수 없습니다. 따라서 기존 문자열을 수정할 수 없습니다. 기존 문자열을 수정할 수 없습니다.

예를 들어 “Python 프로그래밍!”이라는 문자열을 생각해 보세요.

다음과 같이 시작과 끝이 있는 슬라이스를 지정하여 인덱스와 하위 문자열을 사용하여 문자열의 단일 요소에 액세스할 수 있습니다.

>>> my_str = "Python programming!"
>>> my_str[0]
'P'
>>> my_str[4]
'o'
>>> my_str[1:9]
'ython pr'
>>> my_str[9]
'o'

문자 ‘o’를 숫자 ‘0’으로 바꾸고 싶다고 가정해 보겠습니다.

인덱스 4와 9에 o가 있다는 것을 알고 있습니다(위의 코드 조각 참조). 그러나 특정 인덱스의 문자를 ‘0’으로 직접 설정하려고 하면 다음 오류가 발생합니다.

>>> my_str[4] = '0'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

Python은 기존 문자열에 대해 작동하고 필요한 변경 사항이 포함된 새 문자열을 반환하는 일련의 문자열 메서드를 제공합니다.

또한 읽어 보세요: 문자열 연산에 대한 Python 프로그램.

따라서 목록 이해, 루프 및 정규 표현식과 결합된 문자열 메서드를 사용하여 문자열 조작 작업을 수행할 수 있습니다. 이 튜토리얼에서는 Python 문자열에서 문자를 바꾸는 다양한 방법을 살펴보겠습니다.

  Windows용 상위 30개 최고의 IRC 클라이언트

Python 문자열에서 문자 바꾸기

Python 문자열의 문자나 하위 문자열을 대체하려는 사용 사례가 많이 있습니다. 그 중 일부는 다음과 같습니다.

  • 텍스트 정리: 텍스트 데이터로 작업할 때 특정 문자를 바꿔서 텍스트를 정리해야 할 수도 있습니다. 예를 들어 특수 문자, 추가 공백 또는 원치 않는 기호를 제거하거나 교체합니다.
  • 서식: 텍스트를 대문자로 변환하거나 소문자로 변환하는 등 텍스트 서식을 변경할 수 있습니다. 예를 들어 제목이나 표제에서 일관된 대문자 사용을 보장합니다.
  • 데이터 마스킹: 형식을 유지하면서 민감한 데이터를 보호하기 위해 개인 식별 번호나 신용 카드 번호와 같은 민감한 정보를 마스킹해야 하는 경우가 많습니다.
  • URL 및 경로 처리: URL 또는 파일 경로로 작업할 때 형식이 적절하고 웹 브라우저 또는 파일 시스템과 호환되는지 확인하기 위해 특정 문자를 바꿔야 할 수도 있습니다.

문자열에서 문자를 바꾸는 간단한 예를 살펴보겠습니다.

루프와 조건문을 사용하는 접근 방식으로 시작한 다음 동일한 결과를 달성하기 위한 다른 더 나은 방법에 대해 논의하겠습니다.

“Python 프로그래밍!” 문자열에서 ‘o’를 ‘0’으로 바꾸는 동일한 예를 살펴보겠습니다.

for 루프를 사용하여 문자열을 반복하고 특정 문자를 바꾸는 방법은 다음과 같습니다.

original_string = "Python programming!"
new_string = ""
for char in original_string:
    if char == "o":
        new_string += "0"
    else:
        new_string += char
print(new_string)  

이 접근 방식에서는 Original_string의 각 문자를 수동으로 반복합니다. 문자가 ‘o’이면 new_string에 ‘0’을 추가합니다. 그렇지 않으면 동일한 문자를 추가합니다. 이런 식으로 문자 교체를 수행하고 new_string을 빌드합니다.

# Output
Pyth0n pr0gramming!

if 문과 함께 for 루프 및 조건 분기를 사용하는 것은 유지 관리하기 어렵습니다. 특히 하위 문자열이나 여러 문자를 바꿔야 하는 경우.

문자나 하위 문자열을 바꾸는 더 나은 방법이 있으며 다음 섹션에서 이에 대해 살펴보겠습니다.

#1. str.replace() 사용

문자열 메서드인 replacement()를 사용하여 문자나 하위 문자열을 다른 문자열로 바꿀 수 있습니다. str.replace(old, new)를 사용하면 이전 문자나 부분 문자열이 모두 새 문자나 부분 문자열로 대체됩니다.

  Disney+ 계정이 해킹당하는 것을 막는 방법

여기서는 Original_string의 숫자 ‘0’과 함께 replacement() 메소드 문자 ‘o’를 사용합니다.

original_string = "Python programming!"
new_string = original_string.replace("o", "0")
print(new_string) 

결과 문자열은 new_string에 있습니다.

# Output
Pyth0n pr0gramming!

#2. List Comprehension 및 Join() 메소드 사용

Python 문자열의 문자를 바꾸려면 문자열 메서드인 Join()과 함께 목록 이해를 사용할 수 있습니다.

예제를 어떻게 다시 작성할 수 있는지 살펴보겠습니다.

  • 우리는 Original_string의 각 문자를 반복하기 위해 목록 이해를 사용할 수 있습니다. 문자가 ‘o’이면 ‘0’으로 바꾸고 그렇지 않으면 동일한 문자를 유지합니다.
  • 그런 다음 str.join()을 사용하여 이러한 문자를 단일 문자열로 결합하여 new_string을 생성합니다. 이는 문자열에서 단일 문자를 바꿔야 할 때 반복 및 조건 분기에 대한 보다 간결한 대안입니다.
original_string = "Python programming!"
new_string = ''.join(['0' if char == 'o' else char for char in original_string])
print(new_string) 

예상되는 결과는 다음과 같습니다.

# Output
Pyth0n pr0gramming!

#삼. 정규식 사용

Python 문자열의 문자를 바꾸는 또 다른 방법은 정규식(regex)을 사용하는 것입니다. Python에는 내장된 다시 모듈 정규식 일치 작업의 경우. 정규식을 사용하면 검색할 패턴, 검색할 문자열, 일치하는 패턴을 바꿀 문자열을 지정할 수 있습니다.

여기서는 re.sub(pattern, replacement, string) 구문과 함께 re 모듈의 sub() 함수를 사용합니다.

import re

original_string = "Python programming!"
new_string = re.sub(r'o', '0', original_string)
print(new_string) 

r’o’ 패턴은 Original_string에서 문자 ‘o’가 나타나는 모든 항목과 일치하고 이를 ‘0’으로 바꿉니다.

# Output
Pyth0n pr0gramming!

정규식을 사용하여 더 복잡한 패턴을 일치시킬 수 있습니다. 신용카드 번호를 마스킹하는 예를 들어보겠습니다. 마지막 네 자리를 제외한 모든 숫자를 ‘X’로 바꾸고 싶다고 가정해 보겠습니다. 방법은 다음과 같습니다.

import re

def mask_credit_card(card_number):
    # Use regular expressions to match and replace characters
    masked_number = re.sub(r'\d(?=\d{4})', 'X', card_number)
    return masked_number

# Example usage:
credit_card_number = "1234567898765432"
masked_number = mask_credit_card(credit_card_number)
print(masked_number)

결과는 다음과 같습니다.

# Output
XXXXXXXXXXXX5432

정규식을 단순하게 유지하기 위해 하이픈을 포함하지 않았지만 원하는 경우 필요에 따라 예제를 수정할 수 있습니다.

#4. str.maketrans() 및 str.translate() 사용

Python의 str.maketrans() 및 str.translate() 메서드는 문자열에서 문자 수준 번역 및 대체를 수행하는 데 사용됩니다.

  MetroPCS에서 기지국을 업데이트하는 방법

str.maketrans() 작동 방식

maketrans() 메서드는 문자열에서 문자를 바꾸는 방법을 지정하는 변환 테이블을 만드는 데 사용됩니다. str.maketrans(x, y) 구문과 함께 사용할 수 있습니다. 여기:

  • x는 바꾸려는 문자가 포함된 문자열입니다.
  • y는 x를 대체할 문자가 포함된 문자열입니다.

maketrans() 메서드는 x에서 y로의 매핑을 기반으로 변환 테이블을 생성합니다. 그런 다음 str.translate() 메서드와 함께 이 변환 테이블을 사용하여 실제 교체를 수행할 수 있습니다.

str.translate() 작동 방식

str.translate() 메서드를 사용하여 str.maketrans()에서 생성된 변환 테이블을 문자열에 적용할 수 있습니다. 변환 테이블에 정의된 매핑을 기반으로 문자별 교체를 수행합니다. 그리고 지정된 문자 대체가 적용된 새 문자열을 반환합니다.

Translate() 메서드를 사용하는 방법은 다음과 같습니다.

new_string = original_string.translate(translation_table)
  • Original_string: 수정하려는 입력 문자열입니다.
  • Translation_table: 문자 매핑을 정의하는 str.maketrans()를 사용하여 생성된 번역 테이블입니다.

maketrans() 및 str.translate() 메소드를 결합하여 다음과 같이 예제를 다시 작성해 보겠습니다.

original_string = "Python programming!"
translation_table = str.maketrans('o', '0')
new_string = original_string.translate(translation_table)
print(new_string)

여기서는 ‘o’가 ‘0’으로 대체되어야 함을 지정하기 위해 str.maketrans(‘o’, ‘0’)을 사용하여 변환 테이블을 생성합니다. 그런 다음 원본_문자열에 대한 번역() 메서드를 사용하여 이 번역을 적용하고 결과적으로 new_string이 생성됩니다.

# Output
Pyth0n pr0gramming!

이러한 메서드는 문자열의 문자 교체 및 기타 문자 수준 조작과 같은 작업에 유용합니다.

결론

우리가 배운 것을 복습해 봅시다.

Python 문자열은 변경할 수 없습니다. 따라서 Python 문자열의 문자를 바꾸려는 경우 특정 인덱스의 문자를 재할당할 수는 없습니다. Python 문자열에서 한 문자 또는 여러 문자를 바꾸기 위해 다음 접근 방식을 살펴보았습니다.

  • old의 모든 인스턴스를 새 하위 문자열로 바꾸려면 str.replace(old, new)를 사용하십시오.
  • 목록 이해와 Join() 메서드를 사용할 수도 있습니다. 목록 이해를 사용하여 문자 교체를 수행하고 Join() 메서드를 사용하여 문자 목록을 문자열로 결합합니다.
  • 정규식과 패턴 일치를 사용하여 문자 또는 패턴 발생을 바꿀 수 있습니다. re.sub(pattern, replacement, string)과 함께 sub() 함수를 사용하세요.
  • 번역 테이블을 얻으려면 str.maketrans()를 사용하고 번역 테이블을 원래 문자열에 적용하려면 번역() 메서드를 사용하세요.

이러한 기술을 더 잘 이해하려면 몇 가지 예를 코딩해 보세요. 다음으로 Python 문자열에서 마지막 문자를 제거하는 방법을 알아보세요.