Computer Programming/Python

[Python] 파이썬 문자열 관련 메소드

해리팍 2016. 6. 21. 10:25
반응형

안녕하세요.

 

제가 파이썬을 사용하면서 느꼈던 가장 큰 장점 중 하나는 문자열을 다루기 쉽다는 것 입니다.

 

제가 주로 사용하는 언어가 C인데...

 

C와 비교하였을때 문자열을 다루기가 너무 쉬웠습니다.

 

이번 포스팅에서는 파이썬에서 사용할 수 있는 문자열 메소드들을 알아보겠습니다.

 

본 포스팅은 추가 할 내용이 있으면 수시로 업데이트 하겠습니다.

 

 

0. 문자열 메소드 사용 방법

 

기본적으로 문자열.메소드() 의 형태로 사용하게 됩니다.

 

문자열 변수를 활용할 수도 있고, 문자열에 직접 사용하셔도 됩니다.

 

ex 1) 문자열 변수 사용

 

>>> s = 'hello World'

>>> s.upper()

 

ex 2) 문자열에 직접 사용

 

>>> 'hello World'.upper()

 

 

위와 같은 방식으로 사용하시면 됩니다.

 

그리고 문자열은 대, 소문자를 구분합니다.

 

그럼 파이썬의 문자열 관련 메소드들을 알아보도록 하겠습니다.

 

 

1. 문자열 대, 소문자 치환

 

(1) upper() - 문자열의 모든 문자를 대문자로 치환

 

(2) lower() - 문자열의 모든 문자를 소문자로 치환

 

(3) capitalize() - 문자열의 첫 문자는 대문자로, 나머지 문자들은 소문자로 치환

 

>>> string = 'hello World'

>>> string.upper()
'HELLO WORLD'

>>> string.lower()
'hello world'

>>> string.capitalize()
'Hello world'

>>> 

 

 

2. 문자열에서 부분 문자열 검색 관련

 

(1) count(str, start, end) - 문자열 내부에 부분 문자열 str의 개수 검색

 

start와 end에는 검색을 윈하는 첫 인덱스, 마지막 인덱스를 지정.

 

지정하지 않을 경우, start의 default 값은 0, end의 default의 값은 제일 마지막 인덱스.

 

>>> string = 'hi hi hi'

>>> string.count('hi')
3

>>> string.count('HI')
0

>>> string.count('hi', 2)
2

>>>



(2) find(str, start, end) / rfind(str, start, end) - 부분 문자열 str의 최초 위치 (첫 글자의 인덱스)를 반환

 

find는 왼쪽부터, rfind는 오른쪽부터 검색.

 

없을 경우 -1 반환.

 

start와 end에는 검색을 윈하는 첫 인덱스, 마지막 인덱스를 지정.

 

지정하지 않을 경우, start의 default 값은 0, end의 default의 값은 제일 마지막 인덱스.

 

>>> string = 'hi hi hi'

>>> string.find('hi')
0

>>> string.rfind('hi')
6

>>> string.find('HI')
-1

>>> string.find('hi', 1)
3

>>> string.rfind('hi', 1, 5)
3

>>> 

 

(3) index(str, start, end) - 부분 문자열 str의 최초 위치 (첫 글자의 인덱스)를 반환 (왼쪽 부터 검색)

 

없을 경우 Value Error 반환

 

start와 end에는 검색을 윈하는 첫 인덱스, 마지막 인덱스를 지정.

 

지정하지 않을 경우, start의 default 값은 0, end의 default의 값은 제일 마지막 인덱스.

 

>>> string = 'hi hi hi'

>>> string.index('hi')

0

>>> string.index('hi', 1)

3

>>> string.index('HI')

 

Traceback (most recent call last):

  File "<pyshell#44>", line 1, in <module>

    string.index('HI')

ValueError: substring not found

>>> 

 

3. 문자열 편집 관련

 

(1) strip() / lstrip() / rstrip() - 양쪽 / 왼쪽 / 오른쪽의 공백 (스페이스, tab), 줄 바꿈 문자 등을 치환

 

>>> string = ' hi hi hi\t\n'

>>> string.strip()
'hi hi hi'

>>> string.lstrip()
'hi hi hi\t\n'

>>> string.rstrip()
' hi hi hi'

>>>  

 

(2) replace(a, b) - 부분 문자열 a를 문자열 b로 치환

 

>>> string = 'hello world'

>>> string.replace('hello', 'hi')
'hi world'

>>>  

 

 

(3) expandtabs() - 문자열 내부의 tab을 공백 (스페이스)로 치환

 

>>> string = '\thi\thello\tworld'

>>> string
'\thi\thello\tworld'

>>> string.expandtabs()
'        hi      hello   world'

>>>  

 

 

4. 문자열 분할

 

(1) split() - 문자열을 공백 (스페이스, tab, 줄바꿈) 기준으로 분할하여 리스트로 반환

 

>>> string = 'hi hello\tworld\ngood'

>>> string.split()
['hi', 'hello', 'world', 'good']

>>>  

 

(2) split('str') - 문자열을 부분 문자열 str 기준으로 분할하여 리스트로 반환

 

>>> string = 'hi;hello;world'

>>> string.split(';')
['hi', 'hello', 'world']

>>>  

 

반응형