본문 바로가기
SK 행복성장캠퍼스/Python 기초

0901_2일차_Python08_문자열3_인덱싱_슬라이싱

by NickNuma 2020. 9. 4.

문자열 설명 3번째이자 문자열의 인덱싱과 슬라이싱에 대한 설명입니다.

 


인덱싱(idexing)슬라이싱(slicing)선택한 특정 값을 얻어내는 작업입니다.

"""
    집합형 자료형
    1) 문자열
        a. 문자열 생성 방법
        b. 문자열 제공 함수  ==> dir(str) 확인 가능


        c. 인덱싱 및 슬라이싱
            가. 인덱싱
                ==> 문자열에서 특정 문자를 얻는 작업

            나. 슬라이싱
                ==> 문자열에서 특정 문자의 범위를 얻는 작업

            * 문자열 저장은 배열에 저장된다.
              순방향 인덱싱 / 슬라이싱 : 앞부터 검색 ( 0 부터 )
              역방향 인덱싱 / 슬라이싱 : 뒤에서부터 검색 ( -1 부터 )

        d. 문자열 특징

"""

 


먼저, 인덱싱(indexing)입니다.
인덱싱은 특정 위치를 지정해서 값 하나만을 얻어내는 작업입니다.
변수명[위치값]으로 사용합니다.
추가로, 위치값을 -로 하여 뒤에서 부터 읽을 수 있습니다. 이때에 가장 뒤의 값은 변수명[-1]을 갖습니다.

n = "대한민국"
#1. 인덱싱 ==> 특정 위치지정해서 값 하나를 얻음
# 문법 : 변수명[위치값]
print("1:", n[0])   #대
print("2:", n[3])   #국
print("3:", n[-1])  #국
print("4:", n[-3])  #한
print("="*100)


 


다음은 슬라이싱(slicing) 입니다.
슬라이싱(slicing)은 특정 범위를 지정하여 1개 이상의 값을 얻어내는 방법입니다.
변수명[start : end]시작 위치(start)끝 위치(end)를 정해주고 그 사이 값을 가져옵니다. ( start <= [변수] < end )
시작과 끝의 위치를 지정하여 start <= [변수] < end로 사용할 수도 있고
끝 위치만 사용해서 처음부터 끝까지, 시작 위치만 사용해서 시작 위치부터 끝까지 범위를 지정할 수 있습니다.
아무것도 지정하지 않으면 전체 데이터를 가져옵니다. 변수명[:]

추가로, step값을 지정하여 띄엄띄엄 값을 얻어낼수도 있습니다.  변수명 [ start : end : step ]

m = "Hello World"
#2. 슬라이싱 ==> 범위지정해서 검색 방법
# 문법 : 변수명[start : end] => start <= 변수명 < end
#        m[0:4]            ==>      0 <= m < 3
#       변수명[:end]     ==> 0   <= 변수명  < end
#       변수명[start:]     ==> start <= 변수명,  끝까지
#       변수명[:]           ==> 처음부터 끝까지, 전체 데이터 반환
#       변수명[start:end:step]     ==> 1씩 이동이 아니라 step을 지정해서 이동

 


예제 보여드리기 전에, 슬라이싱도 인덱싱과 마찬가지로 순방향 역방향, 모두 가능합니다.

먼저 순방향 예제입니다.

# 가. 순방향:   앞에서부터 검색(양수 이동)
print("5:", m[0:5]) # Hello
print("6:", m[3:8]) # lo Wo
print("7:", m[:8])  # Hello Wo
print("8:", m[:8])  # Hello Wo
print("9:", m[1:])  # ello World
print("10:", m[:])  # Hello World
print("11:", m[0:5:2]) #Hlo (0, 2, 4)
print("="*100)


 


그리고 역방향입니다.
마찬가지로 변수 [-1]이 가장 끝의 데이터를 이야기합니다.
역방향으로 슬라이싱할때도 앞의 글자부터 : 뒤의 글자로 슬라이싱합니다. m[-3 : -1] (앞에서 뒤로)
원데이터의 역순으로 값을 출력하고 싶을 때는 step값만 -1로 줍니다. ( -1 -> -2 -> -3 ->.....)

# 나. 역방향: 뒤에서부터 검색 (음수 이동)
# Hello World
print("12:", m[-5:-1]) # Worl
print("13:", m[-5:])   # World
print("15:", m[:-1])   # Hello worl
print("16: 역순(*****):", m[::-1])   # dlroW olleH     (-1, -2, -3...)


이로써 문자열의 인덱싱, 슬라이싱을 마치고
다음엔 리스트의 생성방법, 특징, 함수, 인덱싱 및 슬라이싱에 대해 설명하도록 하겠습니다.

그럼 이만~

반응형

댓글