문자열 인덱싱, 슬라이스, 내장함수
1. 문자열 인덱싱 또는 추출
문자열에서 한문자를 얻기 위해서 문자열 이름뒤에 대괄호([ ])로,
배열같이 offset을 지정합니다.
첫번째는 [0] 이며, 마지막은 [-1]이며, [-2], [-3] 순서로 진행됩니다.
>>> alphaletters = 'abcdefghijklmnopqrstuvwxyz' >>> alphaletters[0] 'a' >>> alphaletters[1] 'b' >>> alphaletters[-1] 'z' >>> alphaletters[-2] 'y'
기본적으로 문자열도 immutable 변수 이기 때문에, index로 변경이
변경이 불가능합니다.
>>> Test = 'abcde' >>> Test[0] = 'A' // Error 발생
대신 나중에 설명할 내부함수 replace를 통해 변경할 수 있습니다.
2. 문자열 슬라이스
문자열 슬라이스는 [start:end:step] 으로 표현할 수 있습니다.
[:] : 처음부터 끝까지 전체 문자열을 추출합니다.
[start:] : start 부터 끝까지 추출합니다.
[:end] : 처음부터 end-1까지 추출합니다.
[start:end] : start부터 end-1까지 추출합니다.
[start:end:step] : step만끔 점프하면서 start에서 end-1까지 추출합니다.
>>> alphabet = 'abcdefghijklmnopqrstuvwxyz' >>> alphabet[:] 'abcdefghijklmnopqrstuvwxyz' >>> alphabet[20:] 'uvwxyz' >>> alphabet[:10] 'abcdefghij' >>> alphabet[12:15] 'mno' >>> alphabet[-4:] 'wxyz' >>> alphabet[18:-3] 'stuvw' >>> alphabet[::7] 'ahov' >>> alphabet[4:20:3] 'ehknqt' >>> alphabet[19::4] 'tx' >>> alphabet[:21:5] 'afkpu' >>> alphabet[::-1] 'zyxwvutsrqponmlkjihgfedcba'
3. 문자열 내장함수
(1) 문자열 길이 및 문자개수 세기 - len / count
len 은 전체 문자열 길이, count는 문자열 중에 특정문자 갯수
>>> s = "abcefg" >>> len(s) // 전체 문자열 길이 7 >>> s.count('a') // 문자열 중 'a'의 갯수 1
(2) 문자열 나누기 - split
split은 나누며, 나중에 정리할 리스트자료형으로 반환합니다.
>>> str = "test1, test2, test3, test4" >>> str.split(',') ['test1', ' test2', ' test3', ' test4']
(3) 위치 알려주기 - find / index
find/index 모두 위치를 반환하지만, index는 없으면 error 발생
>>> str = "Python is fun for me." >>> str.find('i') 7 >>> str.index('i') // 찾는 문자열 존재안하면 error 발생함 7
(4) 문자열 결합하기 - join
join은 split과 반대의 역할을 한다. string.join(list)형태로 결합한다.
>>> list = ['test','test1','test2','test3'] >>> ",".join(list) 'test,test1,test2,test3'
(5) 문자열 다루기
여러가지 문자열 함수의 예제를 들면서 보겠습니다.
>>> python_define = 'Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.' >>> len(python_define) 95 >>> python_define.startswith('Python') True >>> python_define.endswith('language.') True >>> python_define.find('level') 29 >>> python_define.count('level') 1 >>> python_define.isalnum() False
(6) 대소문자
이번에는 대소문자를 바꾸는 방법을 한번 보겠습니다.
>>> python_define = 'Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.' #첫번째 단어 대문자 >>> python_define.capitalize() 'Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.' #모든 단어의 첫글자 대문자 >>> python_define.title() 'Python Is A Widely Used High-Level, General-Purpose, Interpreted, Dynamic Programming Language.' #글자를 모두 대문자 >>> python_define.upper() 'PYTHON IS A WIDELY USED HIGH-LEVEL, GENERAL-PURPOSE, INTERPRETED, DYNAMIC PROGRAMMING LANGUAGE.' #글자를 모두 소문자 >>> python_define.lower() 'python is a widely used high-level, general-purpose, interpreted, dynamic programming language.' #대문자는 소문자, 소문자는 대문자, >>> python_define.swapcase() 'pYTHON IS A WIDELY USED HIGH-LEVEL, GENERAL-PURPOSE, INTERPRETED, DYNAMIC PROGRAMMING LANGUAGE.'
(7) 대체하기 - replace()
문자열에서 특정 문제를 특정 문자로 바꾸는 예제를 보겠습니다.
# 문자열에서 ,를 and로 모두 바꾸는 경우 >>> python_define.replace(',', ' and') 'Python is a widely used high-level and general-purpose and interpreted and dynamic programming language.' # 문자열에서 ,를 and로 2번만 바꾸는 경우 >>> python_define.replace(',', ' and',2) 'Python is a widely used high-level and general-purpose and interpreted, dynamic programming language.'
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 자료형 (문자열) (0) | 2016.04.25 |
---|---|
[Python] 기본자료형 (숫자형) (0) | 2016.04.20 |
[Python] Linux(우분투) Python 설치 (0) | 2016.04.19 |
[Python] 기본 자료형이란? (0) | 2016.04.13 |
[Python] Python 철학 (0) | 2016.04.13 |