Programming/Python

[Python 3.7] 파이썬 문자열 메서드 사용법 (replace, translate, split, join, upper, lower, strip, lstrip, rstrip, just, ljust, rjust, zfill, find, rfind, count)

Nirsa 2020. 2. 3. 11:47
반응형

 

  • 1. 문자열 변환 (replace)

replace는 문자열을 변환 해줍니다. 아래 코드는 "Hello, World!" 문자열에서 "Hello,"를 "New"으로 변환 합니다.

각각 문자열을 직접 사용하여 변환된 문자열을 출력 하거나, 문자열을 변수에 저장 후 변수를 이용하여 출력, 그리고 변환된 문자열을 변수에 저장하는 방법이 있습니다.

# 문자열 사용하여 변환
"Hello, World!".replace('Hello,', 'New')

# 문자열을 변수에 저장하여 사용
hi = "Hello, World!"
hi.replace('Hello,', 'New')

# 변환된 문자열을 변수에 저장
hi = "Hello, World!"
hi = hi.replace('Hello,', 'New')

 

  • 2. 문자 변환 (translate)

translate는 문자만 변환 합니다. 예를들어 "Hello, World!"가 있을 경우 H는 숫자 1로, W는 숫자 2로, d는 숫자 3으로 등 지정한 문자를 특정 문자로 변환 시킬 수 있습니다. 아래와 같이 코드를 작성 하면 변환된 "1ello, 2orl3!" 문자열이 출력 됩니다.

hi = "Hello, World!"
table = str.maketrans('HWd', '123')
hi.translate(table)

 

  • 3. 문자열 분리, 연결 (split, join)

split은 구분자 문자열를 기준으로 분리 시켜 줍니다. ()을 사용하면 공백을 기준으로 문자열을 분리 시켜주고 (',') 을 사용하면 쉼표(,)를 기준으로 ('-')는 하이픈(-)을 기준으로 분리 시켜 줍니다.

hi = "Hello, World, Python"

# 공백을 기준으로 분리
hi.split()
출력값 : ['Hello,', 'World,', 'Python']

# 쉼표(,)를 기준으로 분리
hi.split(',')
출력값 : ['Hello', ' World', ' Python']

 

join은 여러가지 문자열이 들어간 문자열 리스트가 있을 때, 구분자 문자열을 기준으로 각각의 문자열들을 연결 시킵니다.

hi = "Hello, World, Python"

# 공백을 기준으로 문자열 연결
' '.join(hi)

# 쉼표(,)를 기준으로 문자열 연결
','.join(hi)

 

  • 4. 문자열 대/소문자 변환 (upper, lower)

upper는 모두 대문자로 변경, lower는 모두 소문자로 변경 합니다. 단, 리스트 형태는 지원하지 않기 때문에 아래와 같이 변수처럼 사용되어야 합니다.

# 문자열 리스트 생성
hi = "Hello, World, Python"

# 문자열 형태의 변수 생성
hi = ' '.join(hi)

# 대문자 변환
hi.upper()

# 소문자 변환
hi.lower()

 

  • 5. 특정 문자 삭제 (strip, lstrip, rstrip)

strip은 기본적으로 특정 문자에 해당되는걸 모두 삭제, lstrip은 가장 왼쪽(left)에 해당하는 특정 문자 삭제, rstrip은 가장 오른쪽(right)에 해당하는 특정 문자를 삭제 합니다. 

hi = "    Hello, World!    "

# 좌측 공백 삭제
hi.lstrip()

# 우측 공백 삭제
hi.rstrip()

# 좌측과 우측 모두 공백 삭제
hi.strip()

hi.lstrip('H') 와 같이 특정 문자열을 줄 수 있는데, 위의 hi 변수 그대로에서 시도할 경우 Hello, World! 의 H가 삭제 되지 않습니다. 각 strip 명령은 좌측 또는 우측에 가장 첫번째로 오는 문자열만 삭제 시도 하기 때문 입니다.

만약 Hello, World!의 좌측 공백을 모두 삭제 후 hi.lstrip('H')를 입력하면 "ello, World!    "가 출력될 것 입니다.

 

* 파이썬 string 모듈의 punctuation에는 모든 특수 문자(공백 제외)가 들어가 있기 때문에 특수 문자열을 이용해 삭제하거나 할 때에는 sting.punctuation을 사용 하실 수 있습니다.

import string

# string.punctuation에 들어가있는 특수 문자 확인
print(string.punctuation)

 

  • 6. 문자열 정렬 (just, ljust, rjust)

just는 문자를 가운데로 정렬, ljust는 문자를 왼쪽으로 정렬, rjust는 문자를 오른쪽으로 정렬해줍니다.

정렬의 기준은 길이며 만약 문자열의 길이보다 정렬할 길이가 더 클 경우 나머지 길이 값은 공백으로 채워 집니다. 반대로 문자열의 길이보다 정렬할 길이가 더 작을 경우 정렬이 되지 않습니다.

hi = "Hello, World!"

# 왼쪽으로 길이 15만큼 정렬
hi. ljust(15)
결과 값 : 'Hello, World!  '

# 오른쪽으로 길이 15만큼 정렬
hi. rjust(15)
결과 값 : '  Hello, World!'

# 가운데로 길이 15만큼 정렬
hi. just(15)
결과 값 : ' Hello, World! '

위 코드에서 ljust(왼쪽 정렬)을 기준으로 아래와 같이 공백을 포함한 각 요소들의 길이를 포함하여 총 15가 됩니다.

 

  • 7. 문자열 앞에 0 채우기 (zfill)

zfill을 이용하여 문자열 앞에 0을 채울 수 있습니다. 문자열 정렬과 마찬가지로 zfill 뒤의 숫자는 총 길이 입니다.

hi = "Hello, World!"
hi.zfill(15)

출력값 : '00Hello, World!'

 

  • 8. 문자열 위치 찾기 (find, rfind)

find는 왼쪽에서부터 특정 문자열의 위치를 찾습니다. 특정 문자열을 찾으면 인덱스를 반환하고 문자열이 없다면 -1을 반환 합니다. 만약 찾으려는 문자열의 길이가 2 이상일 경우 처음 시작하는 문자의 위치를 기준으로 인덱스를 반환 합니다.

찾으려는 문자열이 여러개일 경우 왼쪽에서부터 가장 처음 찾은 문자열의 인덱스만 반환 합니다.

hi = 'Hello, World!'
hi.find('Wor')
결과값 : 7

hi.find('o')
결과값 : 4

 

rfind는 오른쪽에서부터 특정 문자열의 위치를 찾습니다. 찾으려는 문자열이 여러개일 경우 오른쪽에서부터 가장 처음 찾은 문자열의 인덱스만 반환 합니다.

hi = 'Hello, World!'
hi.rfind('o')
결과값 : 8

 

  • 9. 문자열 개수 확인 (count)

count는 전체 문자열 중 특정 문자열의 개수를 확인 후 출력 해줍니다.

hi = "Hello, World!"
hi.count('o')
결과값 : 2

 

반응형