[Python 입문 강좌 - 10] 파이썬 문자열 처리(연산, 인덱싱, 슬라이싱, 메서드)

 

더보기

 

[Python 입문 강좌 - 7]에서 문자열 사용과 포매팅 대해 알아봤습니다. 이번 강좌에서는 문자열을 처리하는 방법에 대해서 알아보고 사용하는 방법에 대해 보도록 하겠습니다.

 


1. 문자열 연산자

1.1 문자열 결합 연산자

 

파이썬에서 문자열을 결합하는데 사용하는 연산자는 ' + ' 입니다. 이 연산자는 두 개의 문자열을 연결하여 새로운 문자열을 만듭니다. 아래 코드는 Hello와 World문자열을 결합하여 Hello World라는 문자열을 만듭니다. " "는 공백을 주기 위해서 공백 문자열을 넣어준 것이다.

 

>>> s1 = "Hello"
>>> s2 = "World"
>>> s3 = s1 + " " + s2
>>> print(s3)
"Hello World"

 


1.2 문자열 반복 연산자

 

파이썬에서 문자열을 반복하는데 사용하는 연산자는 ' * '입니다. 이 연산자는 문자열을 지정된 횟수만큼 반복하여 새로운 문자열을 만듭니다. 아래 코드는 Hello 문자열을 반복하여 HelloHelloHello라는 문자열을 만듭니다.

 

>>> s1 = "Hello"
>>> s2 = s1 * 3
>>> print(s2)
"HelloHelloHello"

1.3 문자열 in 키워드

 

in 키워드를 사용하면 문자열에서 특정 문자열이 있는지 여부를 확인할 수 있습니다. 찾는 문자열이 문자열에 있으면 True를 반환하고, 없으면 False를 반환합니다.  아래 코드의 출력 결과는 True가 됩니다.

 

>>> s = "Hello World"
>>> result = "World" in s
>>> print(result)
True

 


2. 문자열 인덱싱과 슬라이싱

2.1 문자열 인덱싱

 

문자열의 인덱싱은 리스트,튜플과 마찬가지로 가능합니다. 문자열의 인덱싱은 문자열의 문자를 추출하는 것입니다. 문자열의 문자에 접근하려면, 문자열[인덱스] 형식으로 접근할 수 있습니다. 인덱스는 0부터 시작합니다. 아래 코드는 문자열 Hello World에서 첫 번째 문자 H를 추출합니다.

 

문자열 인덱싱 이미지

 

>>> s = "Hello World"
>>> c = s[0]
>>> print(c)
"H"

 


2.2 문자열 슬라이싱

 

문자열의 슬라이싱은 리스트와 튜플과 마찬가지로 가능합니다. 문자열의 슬라이싱은 문자열의 일부분을 추출하는 것입니다. 문자열의 슬라이싱은 문자열[start:end:step] 형식으로 수행할 수 있습니다. start는 시작 인덱스, end는 끝 인덱스, step은 슬라이싱 간격입니다. 기본으로 1로 설정되며 생략 가능합니다. 아래 코드는 문자열 Hello World에서 World라는 문자열을 추출합니다.

 

문자열 슬라이싱 이미지

 

>>> s = "Hello World"
>>> sub_s = s[6:]
>>> print(sub_s)
"World"

 


3. 문자열 메서드

3.1 문자열 분리

 

파이썬에서 문자열을 분리하는 메서드는 'split()'입니다. 이 메서드는 문자열을 공백 등의 구분자를 기준으로 분리한 결과를 리스트(List)로 반환합니다. 구분자를 기준으로 분리하고 싶다면 괄호 안에 구분자를 입력해주면 됩니다. 아래 코드는 문자열 Hello World를 공백과 ' , '를 기준으로 분리하여 리스트로 반환합니다. 

 

문자열 분리 이미지

 

>>> s = "Hello World"
>>> l = s.split()
>>> print(l)
['Hello', 'World']

>>> s = "Hello, World"
>>> l = s.split(',')
>>> print(l)
['Hello', ' World']

 


3.2 문자열 찾기

 

파이썬에서 문자열에서 특정 문자열을 찾는 메서드는 find()입니다. 이 메서드는 문자열에서 특정 문자열이 처음으로 나타나는 위치를 반환합니다. 만약 문자열에 특정 문자열이 없으면 -1을 반환합니다. 아래 코드는 문자열 Hello World에서 문자열 World가 처음으로 나타나는 위치를 반환합니다.

 

>>> s = "Hello World"
>>> pos = s.find("World")
>>> print(pos)
6

 


3.3 문자열 치환

 

파이썬에서 문자열을 치환하는 메서드는 replace()입니다. 이 메서드는 문자열에서 특정 문자열을 다른 문자열로 치환합니다. 아래 코드는 문자열 Hello World에서 문자열 World를 Python으로 치환한 결과를 반환합니다.

 

문자열 치환 이미지

 

>>> s = "Hello World"
>>> new_s = s.replace("World", "Python")
>>> print(new_s)
"Hello Python"

 


3.4 문자열 대소문자 변환

 

파이썬에서 문자열의 대소문자를 변환하는 메서드는 upper()와 lower()입니다. upper()는 문자열의 모든 문자를 대문자로 변환하고, lower()는 모든 문자를 소문자로 변환합니다. 아래 코드는 문자열 Hello World를 대문자로 변환한 결과를 반환합니다.

 

>>> s = "Hello World"
>>> new_s = s.upper()
>>> print(new_s)
"HELLO WORLD"

 


3.5 문자열 검사

 

isdigit() 메서드는 문자열이 모두 숫자인지 검사하는 메서드입니다. 만약 문자열이 모두 숫자라면 True를 반환하고, 아니라면 False를 반환합니다. 위 코드의 출력 결과는 True가 됩니다.

 

>>> s = "1234"
>>> result = s.isdigit()
>>> print(result)
True



isalpha() 메서드는 문자열이 모두 알파벳인지 검사하는 메서드입니다. 만약 문자열이 모두 알파벳이라면 True를 반환하고, 아니라면 False를 반환합니다. 위 코드의 출력 결과는 True가 됩니다.

 

>>> s = "Hello"
>>> result = s.isalpha()
>>> print(result)
True



isalnum() 메서드는 문자열이 알파벳과 숫자로만 이루어져 있는지 검사하는 메서드입니다. 만약 문자열이 알파벳과 숫자로만 이루어져 있다면 True를 반환하고, 아니라면 False를 반환합니다. 위 코드의 출력 결과는 True가 됩니다.

 

>>> s = "Hello123"
>>> result = s.isalnum()
>>> print(result)
True



isspace() 메서드는 문자열이 공백 문자열인지 검사하는 메서드입니다. 만약 문자열이 공백 문자열이라면 True를 반환하고, 아니라면 False를 반환합니다. 위 코드의 출력 결과는 True가 됩니다.

 

>>> s = "  "
>>> result = s.isspace()
>>> print(result)
True

 



4. 문자열 함수

4.1 문자열 길이

 

파이썬에서 문자열의 길이를 구하는 함수는 len()입니다. 이 함수는 문자열의 길이를 반환합니다. 아래 코드는 문자열 Hello World의 길이인 11을 반환합니다.

 

>>> s = "Hello World"
>>> print(len(s))
11

 


4.2 문자열 가장 큰 값

 

파이썬에서 문자열의 가장 큰 값을 구하는 함수는 max() 입니다. 이 함수는 문자열에서 가장 큰(사전순으로 가장 뒤에 있는) 문자를 반환합니다. 아래 코드는 Hello World의 가장 큰 값 r이 반환됩니다.

 

>>> s = "Hello World"
>>> c = max(s)
>>> print(c)
"r"

 


4.3 문자열 가장 작은 값

 

파이썬에서 문자열의 가장 작은 값을 구하는 함수는 min() 입니다. 이 함수는 문자열에서 가장 작은(사전순으로 가장 앞에 있는) 문자를 반환합니다. 문자열에서 공백 문자열은 가장 작은 값으로 간주됩니다. 아래 코드는 Hello World의 가장 작은 값 공백 문자열을 반환됩니다.

 

>>> s = "Hello World"
>>> c = min(s)
>>> print(c)
" "

 


4.4 문자열 리스트 변환

 

파이썬에서 문자열을 리스트로 변환하는 함수는 list()입니다. 이 함수는 문자열을 리스트(list) 형태로 변환합니다. 이때, 리스트의 각 원소는 문자열의 각 문자가 됩니다. 아래 코드의 출력 결과는 ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']가 됩니다.

 

>>> s = "Hello World"
>>> lst = list(s)
>>> print(lst)
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

 


4.5 문자열 튜플 변환

 

파이썬에서 문자열을 튜플로 변환하는 함수는 tuple()입니다. 이 함수는 문자열을 튜플(tuple) 형태로 변환합니다. 이때, 튜플의 각 원소는 문자열의 각 문자가 됩니다. 위 코드의 출력 결과는 ('H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd')가 됩니다.

 

>>> s = "Hello World"
>>> tup = tuple(s)
>>> print(tup)
('H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd')

 


5. FAQs

5.1 문자열에서 특정 문자열을 삭제하는 방법은 무엇인가요?

 

파이썬에서 문자열에서 특정 문자열을 삭제하는 방법은 `replace()` 메서드를 사용하여 해당 문자열을 빈 문자열로 치환하는 것입니다. 예를 들어, 다음 코드는 문자열 `s`에서 문자열 `Hello`를 삭제합니다.

 

>>> s = "Hello World"
>>> new_s = s.replace("Hello ", "")
>>> print(new_s)
"World"

 


5.2 문자열에서 앞 뒤 공백을 제거하는 방법은 무엇인가요?

 

파이썬에서 문자열에서 앞 뒤 공백을 제거하는 방법은 strip() 메서드를 사용하는 것입니다. 이 메서드는 문자열의 앞뒤에 있는 모든 공백을 제거합니다. 예를 들어, 다음 코드는 문자열 Hello World에서 공백을 제거한 결과를 반환합니다.

 

>>> s = " Hello World "
>>> new_s = s.strip()
>>> print(new_s)
"Hello World"

 


5.3 문자열에서 특정 문자열을 추출하는 방법은 무엇인가요?

 

파이썬에서 문자열에서 특정 문자열을 추출하는 방법은 인덱싱(Indexing)과 슬라이싱(Slicing)을 사용하는 것입니다. 인덱싱은 문자열에서 특정 위치의 문자를 추출하는 것이고, 슬라이싱은 문자열에서 일부분을 추출하는 것입니다. 예를 들어, 다음 코드는 문자열 Hello World에서 World를 추출합니다.

 

>>> s = "Hello World"
>>> sub_s = s[6:]
>>> print(sub_s)
"World"

 


5.4 문자열을 정렬하는 방법은 무엇인가요?

 

파이썬에서 문자열을 정렬하는 방법은 sort() 함수를 사용하는 것입니다. 이 함수는 문자열을 알파벳순으로 정렬하고 리스트를 반환합니다. 예를 들어, 다음 코드는 문자열 Hello World를 정렬한 결과를 반환합니다. 코드에서 ''.join(리스트)는 sorted(s)의 반환 값 [' ', 'H' , 'W' , 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r']의 리스트를 문자열로 합쳐서 반환해주는 함수입니다.

 

문자열 정렬 방법 이미지

 

s = "Hello World"
new_s = ''.join(sorted(s))
print(new_s)
" HWdellloor"