일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 책추천
- 마케팅
- 카페24
- 파킹통장추천
- 파이썬함수
- 구글애널리틱스
- 파킹통장
- 국민내일배움카드
- 구글애널리틱스공부
- 구글애널리틱스4
- GA4
- 구글애널리틱스강의
- 파이썬
- 파이썬프로그래밍
- 파이썬정규표현식
- 연말정산
- 파이썬문자열
- 신용카드추천
- 페이스북광고
- 구글ads
- GA설치
- GA가이드
- 구글애널리틱스가이드
- 유튜브광고
- 파이썬공부
- 유튜브
- 메이크샵
- GA공부
- 파이썬내장함수
- GA
- Today
- Total
정리왕
파이썬 문자열3 (문자열 인덱싱과 슬라이싱) 본문
문자열에서 인덱싱과 슬라이싱에 대해서 알아보자.
인덱싱(Indexing)이란 무엇인가를 '가리킨다'는 의미이고,
슬라이싱(Slicing)은 무엇인가를 '잘라낸다'는 의미이다.
1. 문자열 인덱싱이란?
컴퓨터는 문자 하나하나에 0부터 시작하여 번호가 매겨져 있다.
a[3]이 의미하는 위치는 a라는 문자열의 네 번째 문자 '파'를 말한다.
프로그래밍을 처음 접하면 a[3]에서 숫자 3이 왜 네 번째 문자를 뜻하는지 의아할 수도 있다.
사실 이 부분이 햇갈릴 수 있는 부분인데, 이렇게 생각하면 쉽다.
"파이썬은 0부터 숫자를 샌다."
0부터 숫자를 센다는 것이 처음에는 익숙하지 않겠지만, 계속 사용하다 보면 자연스러워 질 것이다.
1) 문자열 인덱싱 활용하기
인덱싱 예를 몇가지 더 보자.
앞의 a[3] 과 a[0]은 쉽게 이해할 수 있는데, 마지막의 a[-1]이 뜻하는 것은 무엇일까?
눈치 빠르면 알것이다. 문자열을 뒤에서부터 읽기 위해 마이너스(-) 기호를 붙이는 것이다.
즉, a[-1]은 뒤에서부터 세어 첫 번째가 되는 문자를 말한다.
뒤에서부터 첫 번째 문자를 표시할 때도 0부터 세어 'a[-0]이라고 해야 하지 않을까?' 라는 의문이 들 수도 있겠지만 잘 생각해보자.
0과 -0은 똑같은 것이기 때문에 a[-0]은 a[0]과 똑같은 값을 보여준다.
계속해서 몇 가지 예를 더 보자.
a[-2]는 뒤에서부터 두 번재 문자를 가리키는 '이'를 출력하고,
a[-5]는 뒤에서부터 5 번째 문자를 가리키는 '공'를 출력한다.
2. 문자열 슬라이싱이란?
문자열에서 단순히 한 문자만 뽑아내는 것이 아니라
'파이썬' 또는 '공부중이다' 같이 단어로 뽑아 내는 방법은 슬라이싱으로 할 수 있다.
다음과 같이 하면 된다.
위 방법처럼 단순하게 인덱스로 할 수 있찌만, 파이썬에서는 슬라이싱(Slicing)이라는 더 좋은 방법을 제공한다.
바로 슬라이싱(Slicing) 기법이다.
여기서 배우는 인덱싱 기법과 슬라이싱 기법은 다음에 배울 자료형인 리스트나 튜플에서도 사용할 수 있다.
a[0:1]가 뜻하는 것은 a 문자열에서 자리번호 0부터 1까지의 문자를 뽑아낸다는 뜻이다.
하지만 다음과 같은 의문이 생긴다.
0부터 1인데 왜 "나는"가 출력되지 않고 "나" 만 출력될까?
이렇게 되는 이유는 간단하다.
슬라이싱 기법으로 a[시작번호: 끝 번호]를 지정할 때 끝 번호에 해당하는 것은 포함하지 않기 때문이다.
a[0:3]을 수식으로 나타내면 다음과 같다.
0 <= a < 3
1) 문자열을 슬라이싱 하는 방법
슬라이싱 예를 조금 더 보자.
위 예는 a[0] + a[1] + a[2] 와 동일하다.
a[2]과 공백 문자이기 때문에 '나는'가 아닌 '나는 '로 출력된다.
공백 문자 역시 일반 문자와 동일하게 취급되고 '나는'와 '나는 '는 완전히 다른 문자열이다.
슬라이싱 할 때 항상 시작번호가 0일 필요는 없다.
a[시작번호:끝번호]에서 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아 낸다.
a[시작번호:끝번호]에서 시작 번호를 생략하면 문자열의 처음부터 끝 번호까지 뽑아 낸다.
a[시작번호:끝번호]에서 시작 번호와 끝 번호를 생략하면 문자열의 처음부터 끝까지 뽑아 낸다.
슬라이싱에서도 인덱싱과 마찬가지로 마이너스(-) 기호를 사용할 수 있다.
위 소스 코드에서 a[3:-6]이 뜻하는 것은 a[3]에서부터 a[-7]까지를 말한다.
이 역시 a[-6]은 포함되지 않는다.
2) 슬라이싱으로 문자열 나누기
위 예는 문자열 a를 두 부분으로 나누는 기법이다.
숫자8일 기준으로 문자열 a를 양쪽으로 한번씩 슬라이싱했다.
a[:8]은 a[8]이 포함되지 않고, a[8:]은 a[8]이 포함되기 때문에 8을 기준으로 두 부분으로 나눌 수 있는 것이다.
지금까지 인덱싱과 슬라이싱에 대해서 살펴 보았다.
인덱싱과 슬라이싱은 프로그래밍을 할 때 매우 자주 사용하니 꼭 반복해서 연습해야 한다.
★ "파이선" 문자열을 "파이썬"으로 바꾸는 방법?
파이선 문자열을 파이썬으로 바꾸려면 어떻게 해야 할까?
제일 먼저 떠오르는 생각은 다음과 같을 것이다.
즉, a변수에 "파이썬" 문자열을 대입하고 a[2]의 값이 '선'을 a[1]을 '썬'으로 바꾸어 준다는 생각이다.
하지만 결과는 어떻게 나올까?
당연히 오류가 발생한다. 왜냐하면 문자열의 요소값은 바꿀 수 있는 값이 아니기 때문이다.
문자열 자료형은 그 요소값을 변경할 수 없다. 그래서 immutable한 자료형이라고도 부른다.
하지만 앞에서 배운 슬라이싱 기법을 사용하면 '파이선'문자열을 사용해 '파이썬'으로 문자열을 바꿀 수 있다.
'6.개발 > 파이썬 공부하기' 카테고리의 다른 글
파이썬 문자열5 (format 함수를 사용한 포맷팅2) (0) | 2020.11.29 |
---|---|
파이썬 문자열4 (문자열 포맷팅1) (0) | 2020.11.29 |
파이썬 문자열2 (문자열 연산) (0) | 2020.11.29 |
파이썬 문자열1 (문자열이란?) 파이썬 이스케이프 (0) | 2020.11.29 |
파이썬 - f문자열 포매팅 알아보기 (0) | 2020.11.29 |