문자열 설명 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...)
이로써 문자열의 인덱싱, 슬라이싱을 마치고
다음엔 리스트의 생성방법, 특징, 함수, 인덱싱 및 슬라이싱에 대해 설명하도록 하겠습니다.
그럼 이만~
'SK 행복성장캠퍼스 > Python 기초' 카테고리의 다른 글
0901_2일차_Python08_리스트_함수 (0) | 2020.09.05 |
---|---|
0901_2일차_Python08_리스트_설명_및_인덱싱_슬라이싱 (0) | 2020.09.04 |
0901_2일차_Python08_문자열_함수 (0) | 2020.09.04 |
0901_2일차_Python08_문자열_생성방법_특징 (0) | 2020.09.04 |
0901_2일차_Python08_멤버십연산자 (0) | 2020.09.04 |
댓글