문자열 관련 함수들

  • 문자열 자료형은 자체적으로 함수를 가지고 있으며 이들 함수를 다른 말로 ‘문자열 내장 함수’라고 함
  • 이 내장 함수를 사용하려면 문자열 변수 이름 뒤에 ‘.’을 붙인 후 함수 이름을 써주면 됨

문자 개수 세기 : count

a = "hobby"
print(a.count('b'))   # 2
  • count 함수는 문자열 중 괄호 안에 적힌 문자 ‘b’의 개수를 리턴

위치 반환1 : find

a = "Python is the best choice"

print(a.find('b'))   # 14
print(a.find('k'))   # -1
  • find 함수로 문자열 중 문자 b가 처음 나온 위치를 반환함
  • 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환

위치 반환2 : index

a = "Life is too short"
print(a.index('t'))    # 8
  • index 함수로 문자열 중 문자 t가 맨 처음으로 나온 위치를 반환
  • 만약 찾는 문자나 문자열이 존재하지 않는다면 오류가 발생

문자열 삽입 : join

print(",".join('abcd'))   # a, b, c, d
  • join 함수로 abcd 문자열의 각각의 문자 사이에 ‘,’를 삽입
  • join 함수는 문자열 외에도 리스트나 튜플 입력으로 사용 가능

      print(",".join(['a', 'b', 'c', 'd']))    # a, b, c, d
    

소문자 → 대문자 : upper

a = "hi"
print(a.upper())   # HI
  • upper 함수는 소문자를 대문자로 바꾸어줌
  • 만약 문자열이 이미 대문자라면 아무런 변화도 일어나지 않음

대문자 → 소문자 : lower

a = "HI"
print(a.lower())   # hi
  • lower 함수는 대문자를 소문자로 바꾸어줌

공백 지우기 : lstrip, rstrip, strip

a = "  hi  "
print(a.lstrip())  # 'hi  '      
print(a.rstrip())  # '  hi'
print(a.strip())   # 'hi'
  • lstrip 함수는 문자열 중 가장 왼쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지움 ⇒ l : left
  • rstrip 함수는 문자열 중 가장 오른쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지움 ⇒ r : right
  • strip 함수는 문자열 양쪽에 있는 한 칸 이상의 연속된 공백을 모두 지움

문자열 바꾸기 : replace

a = "Life is too short"
print(a.replace("Life", "Your leg"))   # Your leg is too short
  • replace 함수는 replace(바뀔문자열, 바꿀문자열)처럼 사용하여 문자열 안의 특정한 값을 다른 값으로 치환해 줌

문자열 나누기 : split

a = "Life is too short"
print(a.split())  # ['Life', 'is', 'too', 'short']

b = "a:b:c:d"
print(b.split(":"))  # ['a', 'b', 'c', 'd']
  • split 함수는 a.split() 처럼 괄호 안에 아무 값도 넣어 주지 않으면 공백(Spacebar, Tab, Enter)을 기준으로 문자열을 나누어줌
  • 만약 b.split(":") 처럼 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 하여 문자열을 나누어줌
  • 이렇게 나누어진 값은 리스트에 하나씩 들어감

착각하기 쉬운 문자열 함수

a = 'hi'
a.upper()
print(a)  # hi
  • 문자열은 불변(immutable) 자료형이기 때문에 자체의 값을 변경할 수 없음
  • 실제로 변경하고 싶다면 a = a.upper() 과 같은 형식으로 대입해주어야 함
  • upper 뿐만아니라 위에서 설명한 함수는 모두 이와 같은 규칙이 적용되여 문자열 자체의 값이 변경되는 것이 아니라 변경된 값을 리턴

댓글남기기