Python | 문자열 처리

Sua·2020년 12월 15일
0

Python

목록 보기
2/28
post-thumbnail

문자열 연산하기

+ 기호를 사용하여 문자열을 연결할 수 있다.

head = "Python"
tail = " is fun!"
head + tail # 'Python is fun!'

* 기호를 사용하여 문자열을 여러 번 반복할 수 있다.

a = "python"
a * 2 # 'pythonpython'

문자열 인덱싱

인덱싱(Indexing)이란 무엇인가를 "가리킨다"는 의미이다. 문자열에서 특정한 위치에 있는 문자를 뽑아낼 수 있다.

a[x]은 문자열 a의 x+1 번째 문자를 가리킨다. 파이썬은 0부터 숫자를 세기 때문이다.

a = "Life is too short, You need Python"
a[3] # 'e', 4번째 문자

단, x가 음수일 경우 a[x]는 뒤에서부터 x번째 문자를 의미한다.

a = "Life is too short, You need Python"
a[-1] # 'n', 뒤에서부터 1번째 문자

문자열 슬라이싱

슬라이싱(Slicing)은 무엇인가를 "잘라낸다"는 의미이다. 문자 하나만을 가리키는 인덱싱과 달리 슬라이싱은 여러 개의 문자를 연속으로 뽑아낼 수 있다.

인덱싱 기법과 슬라이싱 기법은 뒤에서 배울 자료형인 리스트나 튜플에서도 사용할 수 있다.

a = "Life is too short, You need Python"
a[0:4] # 'Life', 1번째 문자부터 4번째 문자까지(자리번호 0번 ~ 4번)

슬라이싱으로 문자열 나누기

a = "20010331Rainy"
date = a[:8]
weather = a[8:]

date # '20010331'
weather # 'Rainy'

"Pithon"이라는 문자열을 "Python"으로 바꾸려면?

아래와 같이 하면 오류가 발생한다. 왜냐하면 문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문이다. (immutable한 자료형)

a = "Pithon"
a[1] = 'y'

슬라이싱 기법을 사용하면 Pithon 문자열을 사용해 Python 문자열을 만들 수 있다.

a = "Pithon"
a[:1] + 'y' + a[2:] #'Python'

문자열 내장함수

len(str) : 문자열의 길이를 구하기

문자열 메소드

  • str.count(x) : 리스트 안에 x가 몇 개 있는지 조사하여 그 개수를 돌려줌
  • str.find(x) : 문자 x가 처음으로 나온 위치를 반환. 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환
  • str.index(x) : 문자 x가 처음으로 나온 위치를 반환. 만약 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생
  • str.replace(바뀌게 될 문자열, 바꿀 문자열) : 문자열 안의 특정한 값을 다른 값으로 치환. 문자열 자체는 변경하지 않으며 바뀐 결과를 반환. 만약 바뀐 결과를 유지하고 싶다면 변수에 할당
  • str.translate()str.maketrans('바꿀문자', '새문자') : translate는 문자열 안의 문자를 다른 문자로 바꾼다. 먼저 str.maketrans('바꿀문자', '새문자')로 변환 테이블을 만든다. 그다음에 translate(테이블)을 사용하면 문자를 바꾼 뒤 결과를 반환한다. 다음은 문자열 'apple'에서 a를 1, e를 2, i를 3, o를 4, u를 5로 바꾼다.
table = str.maketrans('aeiou', '12345')
'apple'.translate(table) # '1ppl2'
  • str.split() : 문자열 나누기(문자열을 리스트로 변환), 괄호 안에 아무 값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나누어 준다. 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 이렇게 나눈 값은 리스트에 하나씩 들어가게 된다.
  • "구분자".join(문자열 or 리스트 or 튜플) : 문자열을 구분자와 함께 합치기, 리스트나 튜플을 문자열으로 변환
  • str.upper() : 소문자를 대문자로 바꾸기
  • str.lower() : 대문자를 소문자로 바꾸기
  • str.lstrip(), str.lstrip('삭제할문자들') : 왼쪽 공백 지우기, 왼쪽 특정 문자 삭제하기
  • str.rstrip(), str.rstrip('삭제할문자들') : 오른쪽 공백 지우기, 오른쪽 특정 문자 삭제하기
  • str.strip(), str.strip('삭제할문자들') : 양쪽 공백 지우기, 양쪽 특정 문자 삭제하기
  • str.ljust(길이) : 문자열을 지정된 길이로 만든 뒤 왼쪽으로 정렬하며 남는 공간을 공백으로 채움
  • str.rjust(길이) : 문자열을 지정된 길이로 만든 뒤 오른쪽으로 정렬하며 남는 공간을 공백으로 채움
  • str.center(길이) : 문자열을 지정된 길이로 만든 뒤 가운데로 정렬하며 남는 공간을 공백으로 채움
  • str.zfill(길이) : 지정된 길이에 맞춰서 문자열의 왼쪽에 0을 채움(zero fill을 의미).

본 포스팅은 아래의 사이트를 참고하여 작성되었습니다.
점프투파이썬 https://wikidocs.net/book/1
코딩도장 https://dojang.io/

profile
Leave your comfort zone

0개의 댓글