Python 복습 (8) : 문자열 검색 및 조작 method

STUDY_J·2024년 7월 14일

문자열 검색 및 조작 method

1) startswith()

문자열이 특정 접두사로 시작하는지 여부를 반환합니다.
반환값: True 또는 False

2) endswith()

문자열이 특정 접미사로 끝나는지 여부를 반환합니다.
반환값: True 또는 False

3) in

특정 문자열이 다른 문자열 내에 포함되어 있는지 여부를 반환합니다.
반환값: True 또는 False

4) index()

문자열 내에서 특정 문자열이 처음으로 등장하는 위치를 반환합니다.
문자열이 존재하지 않으면 ValueError 예외를 발생시킵니다.
반환값: 정수 인덱스

5) find()

문자열 내에서 특정 문자열이 처음으로 등장하는 위치를 반환합니다.
문자열이 존재하지 않으면 -1을 반환합니다.
반환값: 정수 인덱스 또는 -1

6) rindex()

문자열 내에서 특정 문자열이 마지막으로 등장하는 위치를 반환합니다.
문자열이 존재하지 않으면 ValueError 예외를 발생시킵니다.

7) rfind()

문자열 내에서 특정 문자열이 마지막으로 등장하는 위치를 반환합니다.
문자열이 존재하지 않으면 -1을 반환합니다.
반환값: 정수 인덱스 또는 -1

8) strip(), rstrip(), lstrip()

strip() : 문자열의 양쪽 끝에서 공백이나 특정 문자를 제거합니다.
rstrip() : 문자열의 오른쪽 끝에서 공백이나 특정 문자를 제거합니다.
lstrip() : 문자열의 왼쪽 끝에서 공백이나 특정 문자를 제거합니다.
반환값: 수정된 문자열

text = "Hello, Python"

result = text.startswith("Hello")
print(result)  # 출력: True

result = text.endswith("Python")
print(result)  # 출력: True

result = "Python" in text
print(result)  # 출력: True

result = text.index("Python")
print(result)  # 출력: 7

result = text.find("Python")
print(result)  # 출력: 7

# rindex, rfind
text = "Hello, Python. Welcome to Python"
result = text.rindex("Python")
print(result)  # 출력: 23

result = text.rfind("Python")
print(result)  # 출력: 23

# strip()

text = "   Hello, Python   "
result = text.strip()
print(result)  # 출력: "Hello, Python"

result = text.rstrip()
print(result)  # 출력: "   Hello, Python"

result = text.lstrip()
print(result)  # 출력: "Hello, Python   "

9) replace

문자열 내에서 특정 문자열을 다른 문자열로 교체합니다.
반환값: 수정된 문자열
형식 : .replace(old, new, count)

  • 단, 문자열 내에 같은 단어 혹은 같은 문자가 반복될 경우에 주의 해주어야 한다.
text = "Hello, Python"
result = text.replace("Python", "World")
print(result)  # 출력: "Hello, World"

# 특정 횟수만큼 대체하고 싶을 때
text = "Hello, world! Welcome to the world of Python."
result = text.replace("world", "universe", 1)
print(result) # Hello, universe! Welcome to the world of Python.

추가 method

10) split (자주 쓰이는 method 이므로 기억하기)

문자열을 구분자를 기준으로 나누어 리스트로 반환합니다.
반환값: 문자열 리스트

text = "Hello, Python, World"
result = text.split(", ")
print(result)  # 출력: ['Hello', 'Python', 'World']
  • 궁금점 : 여기서 나는 단어별로 나누는게 아니라 각 알파벳마다 나누어 리스트로 반환하고 싶다면?
text = "Hello, Python world"
result = list(text)
print(result)
# ['H', 'e', 'l', 'l', 'o', ',', ' ', 'P', 'y', 't', 'h', 'o', 'n', ' ', 'w', 'o', 'r', 'l', 'd']

# 또는 문자열을 반복문을 사용하여 한 개의 문자마다 출력하도록 할 수 있음
# 리스트 컴프리헨셤

result = [char for char in text]
print(result)
# ['H', 'e', 'l', 'l', 'o', ',', ' ', 'P', 'y', 't', 'h', 'o', 'n', ' ', 'w', 'o', 'r', 'l', 'd']

11) join (자주 쓰이는 method이므로 기억하기)

" 문자열 리스트 " 를 특정 구분자로 연결하여 " 하나의 문자열" 로 만듭니다.
반환값: 연결된 문자열

  • 즉, join은 리스트 안의 요소들을 하나의 문자열로 만들어주는 method이다.
words = ['Hello', 'Python', 'World']
result = ", ".join(words)
print(result)  # 출력: "Hello, Python, World"
  • 아래와 같은 예제 문제에서도 사용됨
# Hello Python 문자열의 각 문자의 유니코드 코드 포인트를 출력

s = 'Hello Python'
s_list = []

for i in s:
    s_list.append(ord(i))

print(s_list)

num_list = []
for j in s_list:
    num_list.append(chr(j))

print(num_list)
# join() 메서드 알아보기 => .join()은 리스트만 사용가능함.
print(''.join(num_list))

12) upper, lower, swapcase

  • upper(): 문자열의 모든 문자를 대문자로 변환합니다.
  • lower(): 문자열의 모든 문자를 소문자로 변환합니다.
  • swapcase(): 문자열의 대문자는 소문자로, 소문자는 대문자로 변환합니다.
text = "Hello, Python World"

# 대문자로 변환
result_upper = text.upper()
print("upper():", result_upper) # upper(): HELLO, PYTHON WORLD

# 소문자로 변환
result_lower = text.lower()
print("lower():", result_lower) # lower(): hello, python world

# 대소문자 변환
result_swapcase = text.swapcase()
print("swapcase():", result_swapcase) # swapcase(): hELLO, pYTHON wORLD

0개의 댓글