python 문자열 뒤집는 3가지 방법 - reversed / [::-1] / for

    로꾸거 로꾸거 로꾸거 말해말!!
    문자열을 뒤집는 3가지 방법을 정리했습니다.

    1. slice로 문자열 뒤집기

    먼저 slice에 대해 잠시 정리하자면,

    문자열/list[시작 인덱스:끝 인덱스(포함X): step]
    • 시작 인덱스 또는 끝 인덱스 또는 step을 넣지 않는다면, 전체를 뜻합니다.
    num = [1,2,3,4,5]
    print(num[::]) # [1,2,3,4,5] / 전체를 뜻함
    print(num[2::] # [3,4,5] / index 2부터 끝까지를 뜻함
    
    # step의 의미 => 증가폭을 뜻합니다.
    num = [1,2,3,4,5,6,7,8,9,10]
    num[1::2] # index 1번째부터 끝까지 2씩 증가하며 slice를 한다는 뜻
    print(num[1::2]) # [2, 4, 6, 8, 10]
    • -index는 끝 인덱스부터 차례대로 -1 -2 -3 ... 인덱스 값을 뜻합니다.
    • 전체 길이를 알 수 없을때 용이나게 쓰입니다.
    num = [1, 2, 3, 4, 5]
    
    num[-1] # 마지막 요소인 5를 뜻함
    print(num[-1]) # 5
    
    num[1:-1] # index 1번째 부터 index -2번째 까지를 뜻함. 
    print(num[1:-1]) # [2, 3, 4]
    
    # -step 이해하기 => 요소를 뒤에서부터 감소폭만큼 감소하면서 요소를 가져옴
    num[::-2] # 끝 인덱스부터 -2만큼 증가하여 slice함 => 거꾸로 2칸씩!
    print([::-2]) # [5, 3, 1]
    
    num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    
    num[2:-2] # index 2인 3부터 index -3인 8까지 slice
    print(num[2:-2]) # [3, 4, 5, 6, 7, 8]
    
    num[2:-2:-2] # 끝 인덱스인 -2는 양수로 고치면 index 8이고 시작 인덱스보다 끝 인덱스가 크기때문에 -2만큼 거꾸로 감소할 수 있는 범위가 없다. 그러므로 빈 객체!
    print(num[2:-2:-2]) # []
    
    num[-2:2:-2] # 시작 인덱스가 끝 인덱스보다 뒤에 있으므로 요소를 뒤에서부터 감소폭 만큼 감소할 수 있다. 거꾸로 2칸씩 건너뛰면서 요소를 가져온다.
    print(num[-2:2:-2]) # [9, 7, 5]
    • 🕵 주의 
    • num[1:-1]일때 끝 인덱스는 포함하지 않기 때문에 -2 index까지입니다!
    • num[::-1] 일 땐 전체 리스트나 문자열을 뒤집어 -1만큼 감소하면서 요소를 가져옵니다
    # slice 이용하기[::-1]
    str = "로꾸거로꾸거로꾸거말해말"
    print(str[::-1]) # 말해말거꾸로거꾸로거꾸로

    2. reversed 이용하기

    # reversed 이용하기
    
    print(reversed(str)) # <reversed object at 0x0000026F8AFFC5B0>
    print(''.join(reversed(str))) # 말해말거꾸로거꾸로거꾸로
    • reversed는 객체로 반환하기 때문에 join을 이용해 문자열로 형변환 시켜줘야 합니다.

    3. for문 이용하기

    # for 이용하기
    result_str = ""
    for char in str:
      result_str = char + result_str
    print(result_str) # 말해말거꾸로거꾸로거꾸로
    • 첫 번째 순회
      • for char = '로' in '로꾸거로꾸거로꾸거말해말' :
      • result_str = '로' + ''
    • 두 번째 순회
      • for char = '꾸' in '로꾸거로꾸거로꾸거말해말' :
      • result_str = '꾸' + "로
    • 세 번째 순회
      • for char = '거' in '로꾸거로꾸거로꾸거말해말' :
      • result_str = '거' + "꾸로"
    • 마지막 순회
      • for char = '말' in '로꾸거로꾸거로꾸거말해말' :
      • result_str = '말' + "해말거꾸로거꾸로거꾸로"

     

    - 사진 (출처 : #주간아이돌 | 네이버 TV)

    댓글