산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 문자열 뒤집기: 5가지 전문가 기법 완벽 가이드

문자열은 문자의 순서 있는 시퀀스입니다. 파이썬에는 문자열을 뒤집는 내장 함수가 없지만, 다양한 방법으로 구현할 수 있습니다. 이 튜토리얼에서는 문자열을 뒤집는 5가지 대표적인 방법을 소개합니다.

방법 1: for 루프 사용

가장 직관적인 방법은 빈 문자열에 문자를 앞쪽에 계속 추가하는 것입니다.

def reverse_string(string):
    reversed_string = ""
    for char in string:
        reversed_string = char + reversed_string
    return reversed_string

string = "Guru99"
print(f"Original String: {string}")
print(f"Reversed String: {reverse_string(string)}")
Original String: Guru99
Reversed String: 99uruG

해설: reverse_string() 함수는 빈 문자열 reversed_string을 만들고, 각 문자를 순회하며 앞쪽에 붙여 나갑니다. 마지막에 완성된 문자열을 반환합니다.

방법 2: while 루프 사용

문자열 길이만큼 인덱스를 거꾸로 감소시키며 문자를 추출합니다.

string = "Python"
reversed_string = ""
count = len(string)

while count > 0:
    reversed_string += string[count - 1]
    count -= 1

print(f"Original String: {string}")
print(f"Reversed String: {reversed_string}")
Original String: Python
Reversed String: nohtyP

해설: len(string)으로 길이를 구한 후, count - 1 인덱스로 마지막 문자부터 첫 문자까지 접근하여 연결합니다.

방법 3: 슬라이스 연산자 ([::-1]) 사용

파이썬다운 가장 간결하고 빠른 방법입니다.

def reverse(string):
    return string[::-1]

string = "Let's guru99"
print(f"Original String: {string}")
print(f"Reversed String: {reverse(string)}")
Original String: Let's guru99
Reversed String: 99urug s'teL

해설: [시작:끝:스텝]에서 스텝을 -1로 주면 역순으로 슬라이싱됩니다. 별도 함수 없이 string[::-1] 한 줄로 해결됩니다.

방법 4: reversed() 함수와 join() 결합

reversed()는 역순 이터레이터를 반환하므로, join()으로 문자열로 합쳐줍니다.

def reverse(string):
    return "".join(reversed(string))

string = "guru99"
print(f"Original String: {string}")
print(f"Reversed String: {reverse(string)}")
Original String: guru99
Reversed String: 99urug

해설: reversed(string)은 문자열의 문자를 역순으로 순회하는 이터레이터를 반환합니다. "".join(...)으로 빈 문자열 구분자로 합쳐 최종 문자열을 만듭니다.

방법 5: 재귀 함수 사용

함수가 자기 자신을 호출하며 문자열을 한 글자씩 벗겨내 앞쪽에 붙입니다.

def reverse(string):
    if len(string) == 0:
        return string
    else:
        return reverse(string[1:]) + string[0]

string = "I love guru99"
print(f"Original String: {string}")
print(f"Reversed String: {reverse(string)}")
Original String: I love guru99
Reversed String: 99urug evol I

해설: 기본 케이스(길이 0)에서 문자열을 반환하고, 그렇지 않으면 첫 글자(string[0])를 뒤로 보내고 나머지(string[1:])로 재귀 호출합니다. 호출 스택이 풀리면서 역순 문자열이 완성됩니다.

성능 비교 및 권장 사항

방법시간 복잡도공간 복잡도가독성추천 용도
슬라이스 [::-1]O(n)O(n)★★★★★대부분의 경우 (가장 파이썬다움)
reversed() + join()O(n)O(n)★★★★☆함수형 스타일 선호 시
for 루프O(n²)*O(n)★★★☆☆교육용, 알고리즘 이해
while 루프O(n)O(n)★★★☆☆인덱스 제어 필요 시
재귀O(n²)*O(n) 스택★★☆☆☆교육용, 재귀 이해

* 문자열 연결 연산(+ 또는 +=)이 루프 내에서 일어나므로 실제로는 O(n²) 동작할 수 있습니다. 리스트에 모아 join하는 방식으로 최적화 가능합니다.

결론

python

  1. Python 패키지: 구조, 임포트, 모범 사례
  2. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  3. 파이썬 if…else 문 마스터하기
  4. 파이썬 모듈: 코드 구성으로 명확성과 재사용성 높이기
  5. 파이썬 DSL: 특화 도메인을 위한 맞춤형 솔루션
  6. 파이썬 개발 환경 구축 완벽 가이드: 설치부터 PATH 설정까지
  7. 파이썬에서 파일과 디렉터리 존재 여부 확인하기: 실전 가이드
  8. Python 딕셔너리 마스터하기: 문법, 메서드, 업데이트, 정렬, 병합
  9. 파이썬 메타프로그래밍 마스터: 고급 메타클래스 기법
  10. 파이썬 조건문(Decision Making): 조건부 로직 마스터하기