TIL

TIL. 15 again python_문자열 메서드

codermun 2020. 10. 23. 23:06
728x90
반응형

## 파이선에서 제공하는 문자열 메서드에 대해 알아보자 (자주사용하는 것 위주)


  •  repalce

## 문자열 안의 문자열을 다른 문자열로 바꾼다.

## .replace('바꾸고자 하는 문자열', '새문자열')

 

print('hellow, world!'.replace('world''python')) 

:: 'hellow, python!'

 

a = 'python'

print(a.replace('python''PYTHON'))

:: PYTHON

print(a)

:: python

 

b = 'muntari'

b = b.replace('muntari''codermun')

print(b)

:: codermun

 

## 위 코드에서 보여지듯 repalce method 는 문자열 자체를 변경하지 않고

## 순간적으로 바뀐 결과를 보여주는 것 (a)

## 바뀐 결과를 유지하기 위해선 다시 변수에 할당해주면 된다 (b)


  • translate

## 문자열 안의 문자를 다른 문자로 바꿈

## .tranlate()

 

c = str.maketrans('abcde''12345')

print('apple'.translate(c))

:: 1ppl5

 

## 먼저 str.maketrans('바꿀문자', '새문자')로 변환 되는 변수 c 를 지정한다.

## 'a' => '1', 'b' => '2', ...'e' => '5' 로 변환되어 c에 반환 및 할당

## translate 을 해주면 'apple' -> 1ppl5 로 변환하여 출력해준다.


  • split

## 특정 기준으로 문자열을 분리하여 리스트로 만들어 준다.

## .split('특정 기준')

 

print('apple,banana,orange,grape'.split(','))

:: ['apple', 'banana', 'orange', 'grape']

 

## 입력값으로 자주사용하던 input().split()에서의 split으로

## split() == 공백을 기준으로 분리 / split(',') == ,(콤마)를 기준으로 분리


  • join

## 구분자 문자열과 문자열 리스트의 요소를 연결하여 문자열로 만듬 (split은 분리, join은 연결)

## ''.join(리스트)

 

d = ['apple''banana''orange''grape']

print(''.join(['apple''banana''orange''grape']))

:: applebananaorangegrape

print(' '.join(d))

:: apple banana orange grape

print('-'.join(d))

:: apple-banana-orange-grape

## ''.join(리스트) -> ''은 구분 문자열이 들어가는 자리로 특정 기준을 정해주면 된다.

## ''.join~ == 공백 없음 , ' '.join~ == 공백을 기준으로 문자열 연결 , '-'.join~ == -(하이픈)을 기준으로 연결


  • upper

## 문자열의 문자를 모두 대문자로 바꿈

## .upper()

 

print('python'.upper())

:: PYTHON

print('PYTHon'.upper())

:: PYTHON

# 문자열에 대문자가 있다면 대문자 그대로 유지


  • lower

## 문자열의 문자를 모두 소문자로 바꿈

## .lower()

 

print('python'.lower())

# python

print('PYTHon'.lower())

# python

 

# 문자열에 대문자가 있다면 대문자 그대로 유지


  • strip

## 문자열의 공백 삭제하기

## .strip(), .lstrip(), .rstrip() // 양쪽 공백 제거, 왼쪽 공백 제거, 오른쪽 공백 제거 3가지가 있다.

 

e = '  python  '

print(e.lstrip())

:: 'python  '

 

print(e.rstrip())

::'  python'

 

print(e.strip())

:: 'python'

 

f = ',., pyhton ,'

print(f.lstrip(',.'))

:: ' python, '

 

print(f.rstrip(',.'))

:: ',., python'

 

print(f.strip(',.'))

:: ' python'

 

## ,(콤마) .(점)을 선택하여 삭제 가능하다. 여기서는 공백이 아닌 , . 만 넣어줬으므로 공백이 삭제 되지 않는다.


  • just

## 문자열을 지정된 길이로 만든 후, 정렬하는 메서드이며 남는 공간은 공백 으로 채운다.

## .ljust(길이), rjust(길이) // 문자열을 해당 길이 만큼 만든 후 

왼쪽부터 채움 (왼쪽정렬)/ 오른쪽부터 채움(오른쪽정렬)

 

g = 'python'

print(g.ljust(10))

:: 'python    '

print(g.rjust(10))

:: '    python'


  • center

## 문자열을 지정된 길이로 만든 후, 가운데 정렬하며 남는 공간은 공백 으로 채운다.

## .center(길이)

 

print(g.center(10))

:: '  python  '

 

print(g.center(11))

:: '   python  '

## 가운데 정렬하여 남는 공간이 홀수 일 경우 왼쪽에 공백 한칸을 추가한다.


 

  • method chaining (메서드 체이닝)

## 메서드를 줄줄이 연결한다는 의미로 메서드 체이닝이라 부른다.

## 문자열을 입력받을떄 사용하던 input().split() 도 메서드 체이닝이다.

 

print(g.ljust(10).upper())

:: 'PYTHON    '

## python(g)를 10칸 생성하여 왼쪽 정렬한후, 대문자로 변환


  • zfill

## 문자열을 지정된 길이에 맞춰서 왼쪽부터 0 을 채움 (공백이아닌 0을 채운다)

## .zfill(길이)

 

print('35'.zfill(4))

:: '0035'

print('3.5'.zfill(6))

:: '0003.5'

## 소수점의 .(점)도 공간을 차지함!

print('01234567'.zfill(3))

:: '01234567'

## 단 문자열의 길이보다 지정된 길이가 작은 경우 0을 채우지 않고 문자열을 모두 출력한다.


  • find

## 문자열에서 특정 문자열을 찾아 인덱스를 반환 , 특정 문자열이 없는 경우 -1 을 반환함

## 찾고자하는 문자열이 여러번 등장할 경우 가장 첫 인덱스만을 반환함

## .find('특정문자열')  .rfind('특정문자열')

## 왼쪽에서 부터 특정 문자열을 찾는것이 디폴트이며, rfind로 오른쪽에서부터 특정 문자열을 찾을 수 있다.

 

i = 'apple pineapple'

print(i.find('pl'))

:: 2

print(i.find('xy'))

:: -1

print(i.rfind('pl'))

:: 12

print(i.rfind('xy'))

:: -1


  • index

## 문자열에서 특정 문자열을 찾아 인덱스를 반환, 특정 문자열이 없을 경우 에러!!!(error)

## 찾고자하는 문자열이 여러번 등장할 경우 가장 첫 인덱스만을 반환함

## .index('특정문자열')  .rindex('특정문자열')

## 디폴트값이 왼쪽

 

i = 'apple pineapple'

print(i.index('pl'))

:: 2

print(i.index('xy'))

:: error

print(i.rindex('pl'))

:: 12

print(i.rindex('xy'))

:: error


  • count

## 문자열에서 특정 문자열이 몇 번 나오는지 확인하여 반복된 횟수(갯수)를 반환

## .count('특정 문자열')

 

print(i.count('pl'))

:: 2

728x90
반응형