본문 바로가기
Tech-Pyhton

[Python] 문자열 함수

by redcrow 2019. 3. 3.


1. 문자열 반복


>>> 'abc'*10

'abcabcabcabcabcabcabcabcabcabc'


>>> [123, 456]*2

[123, 456, 123, 456]



2. 문자열 관련 함수


1) lstrip(), rstrip(), strip()  

- lstrip([char]) : char는 optional. char가 없으면 좌측 공백을 삭제. 있으면 그 문자를 좌측에서 삭제

- rstrip([char]) : char는 optional. char가 없으면 우측 공백을 삭제. 있으면 그 문자를 우측에서 삭제

- strip([char]) : char는 optional. char가 없으면 양측 공백을 삭제. 있으면 그 문자를 양측에서 삭제


* 주의 strip 계열의 함수는 문자열의 양쪽만 처리가 가능. 중간은 처리가 안됨


>>> ' test '.lstrip()

'test '

>>> ' test '.rstrip()

' test'


>>> 'Hello,Python!!'.strip(',!')   #중간의 comma는 삭제되지 않는다 

'Hello,Python'



2) replace('바꿀문자열','바뀔문자열')


>>> '123,345'.replace(',','')

     

'123345'


>>> list1 = ['123,342','235,213','1,345,233']


>>> [numStr.replace(',','') for numStr in list1]   #list도 list comprehension으로 일괄변경가능

     

['123342', '235213', '1345233']



3) str.maketrans(intab, outtab)  


특정 문자를 다른 문자로 변경할때 사용. 매핑문자열을 통해 여러개의 문자를 바꿀 수 있다.


>>> intab = 'abcd'

>>> outtab = '1234'

>>> trantab = str.maketrans(intab, outtab)

>>> 'aabccd'.translate(trantab)

     

'112334'


4) ljust(), rjust(), center()


문자열 정렬하기 및 채우기


>>> 'abcd'.ljust(10)

     

'abcd      '

>>> 'abcd'.rjust(10)

     

'      abcd'

>>> 'abcd'.center(10)

     

'   abcd   '

>>> 'abcd'.ljust(10,'0')

     

'abcd000000'

>>> 'abcd'.center(10,'_')

     

'___abcd___'


5) find(), rfind(), index(), rindex() 


문자열 찾기.

find() 계열은 못찾으면 -1을 return 하고 index() 계열은 못찾으면 error를 발생시킨다.


>>> 'ab de ffe ff'.find('ff')

     

6

>>> 'ab de ffe ff'.rfind('ff')

     

10

>>> 'ab de ffe ff'.index('ff')

     

6

>>> 'ab de ffe ff'.rindex('ff')

     

10


>>> 'ab de ffe ff'.find('ff',0,5)

     

-1

>>> 'ab de ffe ff'.index('ff',0,5)

     

Traceback (most recent call last):

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

    'ab de ffe ff'.index('ff',0,5)

ValueError: substring not found


3. Python 문자열 상수 


>>> import string


>>> string.ascii_lowercase

     

'abcdefghijklmnopqrstuvwxyz'

>>> string.ascii_letters

     

'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

>>> string.ascii_lowercase

     

'abcdefghijklmnopqrstuvwxyz'

>>> string.ascii_uppercase

     

'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

>>> string.digits

     

'0123456789'

>>> string.punctuation

     

'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'


댓글