본문 바로가기

파이썬

[PYTHON] string 관련 함수

728x90

1.  대소문자 관련 함수

   1. upper, lower

  • str.upper() : str을 대문자로 변경
  • str.lower() : str을 소문자로 변경
a = “ I Love You “
print(a.upper())
print(a.lower())

>>>I LOVE YOU
>>>i love you

   2. isupper, islower

  • str.isupper() : 전체 문장이 대문자인지 확인하여 True, False로 반환
  • str.islower() : 전체 문장이 소문자인지 확인하여 True, False로 반환 
a = “ I Love You “
print (a.isupper())
print (a.islower())

>>>False
>>>False

2. 해당하는 문자를 제거하는 함수

  • str.strip([char]): 문자열의 양쪽에 char에 해당하는 문자가 있을 때 해당하지 않는 문자가 나올 때까지 해당 문자를 삭제함
  • str.rstrip([char]): 문자열의 오른쪽에 char에 해당하는 문자가 있을 때 해당하지 않는 문자가 나올 때까지 해당 문자를 삭제함
  • str.lstrip([char]): 문자열의 왼쪽에 char에 해당하는 문자가 있을 때 해당하지 않는 문자가 나올 때까지 해당 문자를 삭제함

   ※ char가 공백일 시 띄어쓰기를 삭제함

   1. 띄어쓰기를 제거하는 경우

# char가 주어지지 않아 띄어쓰기를 제거
text = ' Water boils at 100 degrees '
print('[' + text.rstrip() + ']')
print('[' + text.lstrip() + ']')
print('[' + text.strip() + ']')

 

[ Water boils at 100 degrees]
[Water boils at 100 degrees ]
[Water boils at 100 degrees]

   2. 앞뒤로  문자  제거하는 경우

# char에 해당하는 문자를 모두 지움
text = ",,,,,123.....water....pp"
print(text.lstrip(',123.p'))
print(text.rstrip(',123.p'))
print(text.strip(',123.p'))

>>>water....pp
>>>,,,,,123.....water
>>>water

 

# 다음과 같이 단어 제거도 가능
text = ' Water boils at 100 degrees '
print(text.lstrip(' Water'))
print(text.rstrip(' degrees '))
# 공란도 띄어쓰기로 인지
print(text.strip(' degrees '))

>>>boils at 100 degrees
>>> Water boils at 100
>>>Water boils at 100

3. 특정 문자 대체 및 제거

  • str.replace() : 첫번째 문자열을 두번째 문자열로 변환
# str.replace()를 사용하여 특정 문자 제거
string = "Hey! What's up?"
characters = "'!?"

for x in range(len(characters)):
    string = string.replace(characters[x],"")

print(string)

>>>Hey Whats up

 

  • str.join() : 특정 구분자를 구분자를 사용하여 문자열으로 변환
animals = ['사자', '코끼리', '기린', '원숭이', '바나나원숭이']
print("/".join(animals))

>>>사자/코끼리/기린/원숭이/바나나원숭이

 

  • re.sub('패턴', '바꿀문자열', '문자열', 바꿀횟수)
print(re.sub('apple|orange', 'fruit', 'apple box orange tree'))
>>>fruit box fruit tree

# 숫자만 찾아서 n으로 바꿈
print(re.sub('[0-9]+', 'n', '1 2 Fizz 4 Buzz Fizz 7 8'))
>>>n n Fizz n Buzz Fizz n n

4. 특정 문자 찾기

  • str.find(찾을문자, 찾기시작할위치) : 특정 문자가 있는지 확인하고 그 위치(index) 반환, 없을 시 -1 반환
s='123456789'
print(s.find('2'))
print(s.find('2',2))

>>>1
>>>-1

 

  • startswith(시작하는문자, 시작지점) : 해당 문자로 시작하는지 True, False로 반환
s='123456789'
print(s.startswith('2'))
print(s.startswith('2',1))

>>>False 
>>>True

 

  • endswith(끝나는문자, 문자열의시작, 문자열의끝)
s='123456789'
print(s.endswith('9'))
print(s.endswith('9',0,8)) # 시작:1 끝:8

※여기서 주의해야할 점은 string의 범위는(시작, 문자열의 끝-1)이다.

 

 

 

 

 

참고

대소문자 관련 함수 - https://medium.com/@ohc43312/파이썬-대소문자-관리-upper-lower-isupper-islower-89aea6bd5c63

여러문자를 제거하는 경우 - https://codechacha.com/ko/python-string-strip/

join - https://ourcstory.tistory.com/46

re.sub() - https://dojang.io/mod/page/view.php?id=2438 

특정 문자 찾기 - https://dpdpwl.tistory.com/119 

반응형

'파이썬' 카테고리의 다른 글

[PYTHON] zip()  (0) 2021.12.14
[PYHTHON] 정규표현식  (0) 2021.12.14
[PYTHON] set()  (0) 2021.12.08
[PYTHON] strip([char])  (0) 2021.12.05
[PYTHON] lambda 매개변수들 : 반환식  (0) 2021.12.05