Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 문자열에서 n번째 문자 제거하기

파이썬에서 문자열(string)은 문자들의 배열로 취급됩니다. 따라서 첫 번째 문자의 인덱스는 0부터 시작하며, 각 문자마다 고유한 인덱스 번호가 부여됩니다. 이러한 특성 덕분에 특정 위치의 문자에 쉽게 접근할 수 있고, 원하는 인덱스의 문자도 손쉽게 제거할 수 있습니다.

문자열에서 n번째 인덱스의 문자를 제거하는 기본 아이디어는 다음과 같습니다. 먼저 제거할 문자의 인덱스를 입력받은 뒤, 해당 문자를 기준으로 문자열을 두 개의 부분 문자열로 나눕니다. 즉, n번째 인덱스 이전 부분과 n번째 인덱스 이후 부분으로 분리한 후, 이 두 문자열을 다시 하나로 합치면 됩니다.

예제

입력: python
n번째 인덱스: 3
출력: pyton

위 예제에서 'python'이라는 문자열의 3번째 인덱스(0부터 세었을 때 네 번째 문자인 'h')를 제거하면 'pyton'이 됩니다.

알고리즘

1단계: 문자열을 입력받습니다.
2단계: 제거할 문자의 인덱스 p를 입력받습니다.
3단계: p번째 인덱스 이전의 문자들을 변수 X에 저장합니다.
4단계: p번째 인덱스 이후의 문자들을 변수 Y에 저장합니다.
5단계: X와 Y를 연결한 새로운 문자열을 반환합니다.

예제 코드

# 문자열에서 n번째 인덱스의 문자를 제거하는 함수
def removechar(str1, n):
   # n번째 인덱스 이전의 문자들을 변수 x에 저장
   x = str1[ : n]
   # n번째 인덱스 이후의 문자들을 변수 y에 저장
   y = str1[n + 1 : ]
   # 두 문자열을 연결하여 반환
   return x + y

# 메인 코드
if __name__ == '__main__':
   str1 = input("문자열을 입력하세요 ::")
   n = int(input("제거할 인덱스를 입력하세요 ::"))
   print("새로운 문자열은 ::")
   print(removechar(str1, n))

실행 결과

문자열을 입력하세요 :: python
제거할 인덱스를 입력하세요 ::3
새로운 문자열은 ::
pyton

핵심 포인트 정리

이 방법의 핵심은 파이썬의 슬라이싱(slicing) 문법입니다. str1[:n]은 0번째부터 n-1번째까지의 문자를 가져오고, str1[n+1:]은 n+1번째부터 문자열 끝까지의 문자를 가져옵니다. 두 조각을 더하면(n번째 문자만 빠진 채) 원하는 결과를 얻을 수 있습니다.

또한 문자열은 불변(immutable) 자료형이기 때문에 직접 수정할 수 없으며, 위처럼 새로운 문자열을 만들어 반환하는 방식이 파이썬에서 가장 일반적이고 효율적인 접근법입니다.