Python은 문자열을 손쉽게 다룰 수 있도록 split()과 join()이라는 내장 함수를 기본적으로 제공합니다. split()은 하나의 문자열을 지정한 구분자를 기준으로 잘라 리스트로 반환하고, join()은 여러 문자열을 특정 구분자를 사이에 두고 하나로 합칩니다.
# 문자열 분할 Str.split() # 문자열 결합 Str1.join(str2)
알고리즘
1단계: 문자열을 입력받습니다. 2단계: 분할에는 split() 메서드를, 결합에는 join() 함수를 사용합니다. 3단계: 결과를 화면에 출력합니다.
예제 1: split()으로 문자열 분할하기
split()은 공백, 콤마(,), 콜론(:), 세미콜론(;) 등 다양한 구분자를 기준으로 문자열을 나눌 수 있습니다. 인수를 생략하면 공백을 기준으로 분할하며, 슬라이싱을 활용하면 일정 길이씩 끊어서 나누는 것도 가능합니다.
# 문자열 분할
str1 = input("공백이 포함된 첫 번째 문자열 입력 :: ")
print(str1.split()) # 공백을 기준으로 분할
str2 = input("콤마(,)가 포함된 두 번째 문자열 입력 :: ")
print(str2.split(',')) # 콤마(,)를 기준으로 분할
str3 = input("콜론(:)이 포함된 세 번째 문자열 입력 :: ")
print(str3.split(':')) # 콜론(:)을 기준으로 분할
str4 = input("세미콜론(;)이 포함된 네 번째 문자열 입력 :: ")
print(str4.split(';')) # 세미콜론(;)을 기준으로 분할
str5 = input("공백 없는 다섯 번째 문자열 입력 :: ")
print([str5[i:i+2] for i in range(0, len(str5), 2)]) # 2글자씩 분할
실행 결과
공백이 포함된 첫 번째 문자열 입력 :: python program ['python', 'program'] 콤마(,)가 포함된 두 번째 문자열 입력 :: python, program ['python', 'program'] 콜론(:)이 포함된 세 번째 문자열 입력 :: python: program ['python', 'program'] 세미콜론(;)이 포함된 네 번째 문자열 입력 :: python; program ['python', 'program'] 공백 없는 다섯 번째 문자열 입력 :: pythonprogram ['py', 'th', 'on', 'pr', 'og', 'ra', 'm']
마지막 예제에서는 리스트 컴프리헨션과 슬라이싱([i:i+2])을 사용해 문자열을 2글자 단위로 잘라냈습니다. 이처럼 split() 외에도 원하는 규칙대로 문자열을 분할할 수 있습니다.
예제 2: join()으로 문자열 결합하기
join()은 앞의 문자열(str1)의 각 문자 사이마다 뒤의 문자열(str2)을 삽입하여 하나의 새로운 문자열로 만듭니다.
# 문자열 결합
str1 = input("첫 번째 문자열 입력 :: ")
str2 = input("두 번째 문자열 입력 :: ")
str = str2.join(str1) # str1의 각 문자 사이에 str2가 삽입되어 연결됨
print("두 문자열 결합 결과 ::>", str)
실행 결과
첫 번째 문자열 입력 :: AAA 두 번째 문자열 입력 :: BBB 두 문자열 결합 결과 ::>ABBBABBBA
'AAA'의 각 문자 A 사이에 'BBB'가 차례로 삽입되어 최종적으로 'ABBBABBBA'가 출력됩니다. 이처럼 join()은 리스트의 요소를 하나의 문자열로 묶거나, 구분자를 넣어 문자열을 조립할 때 매우 유용하게 활용됩니다.