파이썬 문자열 대표 함수 정리
안녕하세요. 이번 포스팅에서는
파이썬에서 문자열을 다룰 수 있는 함수들 중 대표적으로 많이 사용되는
몇 가지 함수들에 대해 정리를 해보는 시간을 가져보겠습니다.
문자열 대/소문자 변환 : upper, lower, title, capitalize
먼저, 문자열의 대/소문자를 변환할 수 있는 대표 함수들입니다.
upper은 모든 문자를 대문자로,
lower은 모든 문자를 소문자로,
title은 각 단어의 첫 글자를 대문자로, 나머지는 소문자로,
그리고 capitalize는 첫 글자만 대문자로, 나머지는 소문자로 바꿔줍니다.
영단어 외의 다른 문자는 바뀌지 않고 반환됩니다.
사용 예시 결과를 살펴보도록 하겠습니다.
title과 capitalize 함수의 사용 결과를 특히 눈여겨 보시면 좋을 듯 합니다.
문자열 탐색 : count, find, index
문자열에서 특정 정보를 탐색할 수 있는 함수인 count, find, index 함수입니다.
먼저, count 함수는 특정 문자의 개수를 반환해줍니다.
count내에 두 번째 인자로 숫자를 지정해준다면, 해당 위치 인덱스를 시작점으로 탐색합니다.
a = 'you youth yours yolo'
print(a.count('o')) # 5(o가 5개)
print(a.count('you')) # 3(you가 3개)
print(a.count('o', 2)) # 4('u youth yours yolo' 에서 o 4개)
a.count('o', 2)의 경우는 2번 인덱스인 u부터 시작하는 문자열에서
'o'의 개수가 카운팅 된 것을 확인할 수 있었습니다.
다음으로, find 함수는 해당 문자가 처음으로 등장하는 인덱스를 반환해줍니다.
다만, 해당 문자를 찾지 못하면 -1을 반환하며,
count 함수와 마찬가지로 두 번째 인자에 숫자를 넣어주면,
해당 위치부터 탐색을 시작하여 가장 처음 해당 문자가 등장하는 인덱스를 반환합니다.
a = 'you youth yours yolo'
print(a.find('o')) # 1
print(a.find('your')) # 10
print(a.find('o', 6)) # 11(6번 인덱스인 u부터 탐색)
print(a.find('i')) # -1
위의 출력 예시를 확인하시면 이해가 쉬울 것으로 생각됩니다.
index 함수는 find 함수와는 사용법이 거의 동일하나,
해당 문자를 찾지 못하면 -1을 반환하는 것이 아니라, 에러를 발생시킵니다.
a = 'you youth yours yolo'
print(a.index('o')) # 1
print(a.index('your')) # 10
print(a.index('o', 6)) # 11(6번 인덱스인 u부터 탐색)
print(a.index('i')) # ValueError: substring not found
가장 위의 3가지 경우는 출력 값이 find 함수와 동일했지만,
없는 문자를 넣은 경우는 ValueError가 발생한 것을 확인할 수 있었습니다.
문자열 구성 파악 : isdigit, isalpha, isupper, islower
해당 문자열이 숫자로만 구성되었는지, 혹은 알파벳으로만 구성되었는지 등을
확인하고 싶으실 때가 있을 것입니다.
이럴때 사용 가능한 함수들로, 결과 값은 True / False 형태로 반환합니다.
isdigit은 모든 문자열이 숫자이면 True,
isalpha는 모두 알파벳이거나 한글이면 True,
isupper, islower은 각각 모두 대문자, 소문자로 구성인지 여부로 True를 반환시켜줍니다.
다른 종류의 문자가 단 하나라로 섞이면 False를 반환함에 유의해주세요.
단, isupper, islower에서는 각각 소문자, 대문자만 안섞여있다면 이와 상관없는
숫자, 공백 등의 문자는 결과에 상관이 없습니다.
사용 예시를 살펴보겠습니다.
# isdigit
print('1350'.isdigit()) # True
print('1,350'.isdigit()) # False
print('13 50'.isdigit()) # False
print('123a'.isdigit()) # False
# isdigit
print('Hello'.isalpha()) # True
print('Hello!'.isalpha()) # False
print('Hi Hello'.isalpha()) # False
print('abc가'.isalpha()) # True
print('abc3'.isalpha()) # False
# isupper, islower
print('NEW YORK'.isupper()) # True
print('Next'.isupper()) # False
print('hi 33'.islower()) # True
print('abc가'.islower()) # True
문자열 공백 제거, 특정 문자 대체 : strip, rstrip, lstrip, replace
문자열에서 공백을 제거할 수 있는 함수들은 strip, rstrip, lstrip이 있으며,
줄바꿈 문자(\n)이나 tab문자(\t) 등도 포함하여 제거가 가능합니다.
rstrip은 오른쪽 끝, lstrip은 왼쪽 끝의 공백을 제거하며,
strip 함수는 양쪽 끝의 공백을 모두 제거합니다.
a = ' abc '
a.lstrip() # 'abc '
a.rstrip() # ' abc'
a.strip() # 'abc'
replace 함수는 특정 문자를 다른 문자로 대체할 수 있는 기능을 가지고 있습니다.
해당 함수의 예제는 이전 포스팅에서 다룬 적이 있어 링크로 대체하도록 하겠습니다.
문자열 쪼개기, 합치기 : split, join
문자열을 공백 등으로 나눠서 단어 단위로 쪼개어 리스트에 반환 가능한 split 함수와
리스트에 들어있는 단어들을 하나의 문자열로 원하는 모양으로 합치는 join 함수도
문자열을 자유자재로 다룰 수 있는 대표적인 함수들입니다.
join 함수는 아래와 같이 연결 문자.join(리스트) 형태로 사용하시면 됩니다.
a = ['ab', 'cd', 'ef']
''.join(a) # 'abcdef'
' '.join(a) # 'ab cd ef'
'ggg'.join(a) # 'abgggcdgggef'
split 함수의 예제도 이전 포스팅에서 이미 다루었던 관계로
해당 글의 링크를 첨부하며 설명을 생략하겠습니다.
이 외에도 파이썬에서 문자열을 다룰 수 있는 함수의 종류는 더 많지만,
여기서는 대표적으로 사용하기 좋은 일부 함수에 대해서만 다루어보았습니다.
또한, string 모듈에서 파이썬 문자열에 관한 여러 기능을 추가로 제공한다고하니,
관심있는 분들은 찾아보시면 도움이 되실 것으로 생각됩니다.
이번 포스팅에서는 이 모듈에 대한 논의는 생략하도록 하겠습니다.
이 글이 파이썬에서 문자열 다루기를 이해하는데 조금이라도 도움이 되시기를
바라면서 포스팅을 마치도록 하겠습니다. 읽어주셔서 감사드립니다.
'Python > 파이썬 기초' 카테고리의 다른 글
py 파일 import 방법, if __name__ == '__main__' 의미, Colab에서 py 파일 가져오기 (0) | 2021.12.21 |
---|---|
파이썬 True로 인정되는 경우 정리, 논리, 비트 및 삼항 연산자 (0) | 2021.12.09 |
파이썬 replace 함수 사용 case 정리, 예시 (0) | 2021.12.06 |