-
[Python] 문자열(String) - (1) 문자열 인덱스/문자열 조작함수Programming/Python 2020. 5. 18. 20:55
문자열이란?
여러개의 char가 결합된 형태를 말한다.
자바와 달리 문자(char)와 문자열(string)을 구분하지 않는다.
1) 문자열 인덱스
특징
-
문자열은 문자의 배열과 동일하다.
-
즉, 배열의 인덱스로 요소 추출 가능 (정방향 인덱스, 역방향 인덱스 존재)
-
범위를 지정하여 문자열의 일부 요소를 추출할 수도 있다.
예제 설명
-
인덱스를 사용하여, 문자열 요소에 접근
-
범위를 지정하여, 문자열의 일부 요소들에 접근
1234567891011121314151617181920212223242526#1번 문자열 인덱싱(요소접근 방법)#예제1str = 'Hello Python'print('str:',str)#문자'e'출력print('str[1]:', str[1]) #정방향 인덱스 사용print('str[-11]:', str[-11]) #역방향 인덱스 사용#문자'P'출력print('str[6]:', str[6]) #정방향 인덱스 사용print('str[-6]:', str[-6]) #역방향 인덱스 사용#예제2str = 'Hello Python'print('str:',str)#'Hello'만 범위로 지정print('str[0:5]:',str[0:5])print('str[-12:-7]:',str[-12:-7])print('str[:5]:',str[:5]) #시작 위치 생략 가능#'Python'만 범위로 지정print('str[6:12]:',str[6:12])print('str[-6:-12]:',str[-6:-12])print('str[6:]:',str[6:]) #끝 위치 생략 가능cs 2) 문자열 조작함수 - replace(), split(), splitline(), join()
1. replace(old, new[,cnt]) : 문자열의 old부분을 new로 교체
특징
-
cnt는 교체 횟수
-
cnt를 지정하지 않으면 모든 old값이 new로 교체된다
예제
12345678910111213141516171819202122#문자열 조작 함수#1. replace(old, new[,cnt]) 예제s1 = 'abcdefg'print(s1.replace('bc','123')) #원본 문자열에서 bc부분을 123으로 교체#결과: a123defgprint(s1) #실행 후에도 원본 문자열은 바뀌지 않는다.#결과: abcdefgs2='one str two str three str'print(s2.replace('str','box',2))#원본 문자열에서 'str' 2개만 'box'로 변경#결과:one box two box three strprint(s2.replace('str','box'))#원본 문자열에서 'str' 모두를 'box'로 변경#결과:one box two box three boxprint(s2)#실행 후에도 원본 문자열은 불변#결과: one str two str three strcs 2. split([delim[,max]) : 문자열을 delim(구분자)를 기준으로 분할하여, 문자열 리스트를 반환
특징
-
delim을 생략하면 스페이스가 default값으로 사용된다.
-
max는 분할 개수를 뜻한다.
예제
123456789101112131415#문자열 조작 함수#2.split([delim[,max]) 예제s2='one two three four five'print(s2.split())#구분자를 지정하지 않으면 공백이 기본 구분자가 된다#결과:['one', 'two', 'three', 'four', 'five']s2='one,two,three,four,five'print(s2.split(','))#구분자를 ','로 지정#결과:['one', 'two', 'three', 'four', 'five']print(s2.split(',',2))#구분자 분할 개수를 2개로 지정#결과:['one', 'two', 'three,four,five']cs 3. splitline(num): 문자열을 '\n'기준으로 분할. '\n'을 제거한 리스트를 반환
특징
-
num이 양수면, '\n' 제거 안함
예제
1234567891011121314151617181920#문자열 조작 함수#3. splitline(num) 예제s1='one line\ntwo line\nthree line'print(s1.splitlines())#\n을 구분자로 문자열 분할. 분할된 문자열의 \n은 제거해서 반환#결과:['one line', 'two line', 'three line']print(s1.splitlines(3))#파라메터 값이 양수면 '\n'제거 하지 않고 반환한다.#결과:['one line\n', 'two line\n', 'three line']s2='one line\n\ntwo line\n\nthree line'print(s2.splitlines())#결과:['one line', '', 'two line', '', 'three line']print(s2.splitlines(1))#파라메터 값이 양수일 경우, 숫자 크기와 상관없이 결과는 동일#결과:['one line\n', '\n', 'two line\n', '\n', 'three line']print(s2.splitlines(2))#결과:['one line\n', '\n', 'two line\n', '\n', 'three line']cs 4. join(str): 문자열들을 하나의 문자열로 결합. 각 문자열 사이 구분자 추가 가능
예제
123456789101112131415#문자열 조작 함수#4.join(str) 예제delim = '/' #구분자s1=('aaa','bbb','ccc') #문자열 튜플: 불변s2=['aaa','bbb','ccc'] #문자열 리스트: 가변#튜플의 요소를 모두 연결하여 하나의 문자열 반환. delim을 구분자로 사용print(delim.join(s1))#결과:aaa/bbb/ccc#리스트의 요소를 모두 연결하여 하나의 문자열 반환. delim을 구분자로 사용print(delim.join(s2))#결과:aaa/bbb/ccccs 'Programming > Python' 카테고리의 다른 글
[Python] 문자열(String) - (2) 문자열 검색함수 find/rfind/index/rindex/count (0) 2020.05.18 댓글
-