python : 문자열 method

리로린·2023년 6월 9일

python 문법

목록 보기
6/7

str 객체는 다양한 메소드를 이루고 있다. string 객체가 가지고 있는 모든 method를 알고 싶을 때는 dir(str)을 입력하면 다양한 method를 확인 할 수 있다.
이 외에도 문자열에 사용할 수 있는 여러가지 method를 안내하도록 한다.

  1. 대문자로 변환하기

문자열.upper()은 숫자가 있어도 상관 없이 소문자로 변환한다.

text = "Hello, World!"
uppercase_text = text.upper()
print(uppercase_text)


## print
HELLO, WORLD!
  1. 소문자로 변환하기

문자열.lower()은 숫자가 있어도 상관 없이 소문자로 변환한다.

text = "Hello, World!"
lowercase_text = text.lower()
print(lowercase_text)


##print
hello, world!
  1. 소문자인지 대문자인지 확인하기

문자열.isupper(),문자열.islower()은 해당문자가 대문자로만 구성되어있는지 혹은 소문자로만 구성되어 있는지 알려주는 method다.

3-1 isupper()

>>>'AB'.isupper()
True

>>>'ABd2j1'.isupper()
False

>>>'ABC123'.isupper()
True

3-2 islower()

>>>'abc'.islower()
True
>>>'abcABC'.islower()
False
>>>'abc123'.islower()

다만 숫자에는 영향 받지 않는다.

  1. 문자열 캐싱

한번 생성된 문자열은 변경 할 수 없다. 동일한 문자열을 여러번 사용해야 하는 경우 메모리 낭비가 발생할 수 있기 때문에 이를 피하기 위하여 intern()함수를 사용해 문자열을 캐싱해 이용한다.
이때 intern함수를 이용하기 위해서는 sys모듈을 import해야한다.
예를 들어 sys.intern("hello")를 사용하면 "hello"문자열을 캐싱해 동일한 문자열을 여러번 사용 할 때 메모리를 절약 할 수 있다.

import sys

text1 = sys.intern("hello")
text2 = sys.intern("hello")
print(text1 is text2)  

##print
True
  1. 문자열 분할

이건 다들 너무 잘 알법하다. split()을 이용하면 특정 구분자를 기준으로 분할 할 수 있다. 분할 되어 나오는 형태는 list이다.
만약 한글자씩 보고자 한다면 split()대신 list(#배열)을 이용하면 된다.

fruits = "apple,banana,orange"
fruit_list = fruits.split(",")
print(fruit_list)

##print

['apple', 'banana', 'orange']

  1. 문자열 결합

join() 메서드를 사용하면 리스트의 문자열 요소들을 결합할 수 있다.

fruits = ["apple", "banana", "orange"]
fruits_string = ", ".join(fruits)
print(fruits_string)

#print
fruits = ["apple", "banana", "orange"]
fruits_string = ", ".join(fruits)
print(fruits_string)

"구분해 빼고 합치려는 문자 ex), ".join(리스트) 로 이용하면 된다.

split은 구분하고자 하는 문자를 넣는데 join은 이를 앞에 넣고 리스트를 안에 넣는다는 것 잘 구분해야한다.

  1. 문자열 검색

find(), index(), count() 메서드를 사용하여 문자열 내에서 특정 문자열을 검색하고 조작할 수 있다.
find()는 찾는 문자열의 첫 번째 인덱스를 반환하고,
index()는 찾는 문자열의 첫 번째 인덱스를 반환하지만,
찾는 문자열이 없을 경우 ValueError를 발생시킨다.
count()는 찾는 문자열이 나타나는 횟수를 반환한다.

text = "Hello, World!"
index = text.find("World")
print(index)  # 7 찾는 문자열의 첫번째 인덱스 

count = text.count("l")
print(count)  # 3 찾는 문자열이 몇번 나오는지 


  1. 공백 제거 :

strip() 메서드를 사용하여 문자열의 앞뒤 공백을 제거할 수 있다.
공백 제거에는 strip뿐만 아니라 왼쪽 공백을 제거하는 "문자".lstrip() 그리고 오른쪽 공백을 제거하는 "문자".rstrip()가 있다.
left,right라고 이해하면 쉽다.
또한 모든 공백을 제거하는 replace() 도 있다.

8-1 . 공백 제거: strip() 메서드를 사용하여 문자열의 앞 뒤에 있는 공백을 제거할 수 있다.

text = "   hello   "
stripped_text = text.strip()
print(stripped_text)

##print
hello

8-2. 왼쪽 공백 제거: lstrip() 메서드를 사용하여 문자열의 왼쪽에 있는 공백을 제거할 수 있다.

text = "   hello   "
left_stripped_text = text.lstrip()
print(left_stripped_text)


#print
hello   

8-3. 오른쪽 공백 제거: rstrip() 메서드를 사용하여 문자열의 오른쪽에 있는 공백을 제거할 수 있다.

text = "   hello   "
right_stripped_text = text.rstrip()
print(right_stripped_text)

##print
   hello
   
   

8-4. 특정 문자로 공백 제거: strip() 메서드에 인자로 특정 문자를 전달하여 해당 문자로 둘러싸인 공백을 제거할 수 있다.

text = "---hello---"
stripped_text = text.strip("-")
print(stripped_text)


##hello

8-5.모든 공백 제거: replace() 메서드를 사용하여 모든 공백을 제거할 수도 있다.

text = "   hello   world   "
no_spaces_text = text.replace(" ", "")
print(no_spaces_text)

##print
helloworld

profile
리로린의 블로그

0개의 댓글