Python/파이썬 기초

파이썬 문자열 대표 함수 총정리, 코드 예시

jimmy_AI 2021. 12. 14. 16:48
반응형

파이썬 문자열 대표 함수 정리

안녕하세요. 이번 포스팅에서는

파이썬에서 문자열을 다룰 수 있는 함수들 중 대표적으로 많이 사용되는

몇 가지 함수들에 대해 정리를 해보는 시간을 가져보겠습니다.

 

문자열 대/소문자 변환 : 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 함수는 특정 문자를 다른 문자로 대체할 수 있는 기능을 가지고 있습니다.

해당 함수의 예제는 이전 포스팅에서 다룬 적이 있어 링크로 대체하도록 하겠습니다.

 

파이썬 replace 함수 사용 case 정리, 예시

파이썬 문자열(string) 자료형을 다룰 때, 유용하게 사용되는 replace 함수의 다양한 사용 예시를 이해하기 쉽게 정리해보도록 하겠습니다. 파이썬 replace 함수 : 기본 예시 replace 함수의 사용법은 간

jimmy-ai.tistory.com

 

 

문자열 쪼개기, 합치기 : split, join

문자열을 공백 등으로 나눠서 단어 단위로 쪼개어 리스트에 반환 가능한 split 함수

리스트에 들어있는 단어들을 하나의 문자열로 원하는 모양으로 합치는 join 함수

문자열을 자유자재로 다룰 수 있는 대표적인 함수들입니다.

 

join 함수는 아래와 같이 연결 문자.join(리스트) 형태로 사용하시면 됩니다.

a = ['ab', 'cd', 'ef']

''.join(a) # 'abcdef'
' '.join(a) # 'ab cd ef'
'ggg'.join(a) # 'abgggcdgggef'

split 함수의 예제도 이전 포스팅에서 이미 다루었던 관계로

해당 글의 링크를 첨부하며 설명을 생략하겠습니다.

 

파이썬 split 함수 용도, 사용법 (문자열 -> 리스트)

파이썬으로 텍스트, csv 등 파일에서 원하는 정보를 가져와 데이터처리를 할 때, 파싱 과정에 있어 무척 유용한 split 함수의 사용법에 대해서 살펴보고 용도에 대해서 생각해보는 시간을 가져보

jimmy-ai.tistory.com

 

이 외에도 파이썬에서 문자열을 다룰 수 있는 함수의 종류는 더 많지만,

여기서는 대표적으로 사용하기 좋은 일부 함수에 대해서만 다루어보았습니다.

 

또한, string 모듈에서 파이썬 문자열에 관한 여러 기능을 추가로 제공한다고하니,

관심있는 분들은 찾아보시면 도움이 되실 것으로 생각됩니다.

이번 포스팅에서는 이 모듈에 대한 논의는 생략하도록 하겠습니다.

 

이 글이 파이썬에서 문자열 다루기를 이해하는데 조금이라도 도움이 되시기를

바라면서 포스팅을 마치도록 하겠습니다. 읽어주셔서 감사드립니다.