파이썬 split() 함수 사용법|공백으로 입력값 나누기
게시일 2026.10.20
파이썬 split() 함수란 무엇인가?
split() 함수는 파이썬의 문자열 메서드 중 하나로, 문자열을 원하는 기준(구분자, separator)으로 잘라서 리스트(list)로 만들어 줍니다. 가장 대표적으로 입력값을 공백(스페이스) 기준으로 여러 부분으로 나눌 때 자주 사용됩니다. 예를 들어, 이름과 나이처럼 여러 정보를 한 줄에 입력받아 따로 처리하고 싶을 때 split()이 꼭 필요합니다.
split()의 기본 사용법과 가장 작은 예제
split() 함수의 기본 형태는 문자열.split(구분자, 최대분할횟수)입니다. 구분자와 최대분할횟수는 생략할 수 있습니다. 구분자(sep)를 생략하면 연속된 모든 공백(띄어쓰기, 탭, 줄바꿈 등)을 기준으로 나누고, 최대분할횟수(maxsplit)는 몇 번만 나눌지 정할 때 사용합니다.
가장 단순한 split() 사용 예제는 다음과 같습니다:
text = "apple banana cherry"
result = text.split()
print(result)실행 결과
['apple', 'banana', 'cherry']
여기서 split()을 괄호 없이 쓰면 모든 공백(연속된 띄어쓰기, 탭 등)을 기준으로 텍스트를 나눕니다. 위 코드는 ['apple', 'banana', 'cherry']라는 리스트를 만듭니다.
split()의 다양한 활용: 입력값 처리와 구분자 지정
실제로 split()은 사용자 입력값을 처리할 때 많이 쓰입니다. 예를 들어, 여러 숫자를 한 줄에 입력받아 리스트로 변환할 때 아래처럼 쓸 수 있습니다:
user_input = input("숫자들을 입력하세요: ")
numbers = user_input.split()
print(numbers)
만약 쉼표(,)로 구분된 값을 다루고 싶다면 구분자를 명시적으로 지정할 수 있습니다:
csv_text = "A,B,C,D"
result = csv_text.split(",")
print(result)실행 결과
['A', 'B', 'C', 'D']
이밖에도 최대 분할 횟수를 지정해 일부만 나눌 수도 있습니다:
sentence = "one two three four"
result = sentence.split(" ", 2)
print(result)실행 결과
['one', 'two', 'three four']
위 코드에서 maxsplit=2로 지정하면, 앞에서부터 두 번만 나누고 나머지는 그대로 남깁니다. 결과는 ['one', 'two', 'three four']입니다.
자주 하는 실수와 혼동: 연속된 공백, 빈 값, strip()과의 관계
split()을 사용할 때 초보자가 흔히 겪는 실수와 혼동 포인트는 다음과 같습니다:
- 연속된 공백 처리:
split()에서 sep을 생략하면 연속된 공백은 한 번에 처리되어 빈 문자열이 나오지 않지만, sep을 명시하면 빈 값도 결과에 포함됩니다. - 양쪽 공백 처리: 입력값에 양쪽 공백이 있으면,
split()기본 동작에서는 자동 무시됩니다. 그러나 구분자를 명시하면 다릅니다. - 빈 문자열 split: 빈 문자열에 split()을 쓰면
[]가 반환됩니다.
아래 예제에서 각각의 동작을 확인해 봅니다.
# 연속된 공백이 있을 때
text = " a b c "
print(text.split())실행 결과
['a', 'b', 'c']
이 코드는 ['a', 'b', 'c']를 출력합니다. 연속된 공백이 한 번에 합쳐져 빈 값은 사라집니다.
하지만 sep을 지정하면 결과가 달라집니다.
# 잘못된 예: 구분자 지정 시 빈 값이 남는 경우
text = "a,,b,c,"
print(text.split(","))실행 결과
['a', '', 'b', 'c', '']
이 경우 ['a', '', 'b', 'c', '']가 출력됩니다. 연속된 구분자가 빈 문자열을 만듭니다. 이 차이로 인한 실수에 주의해야 합니다.
문자열 양쪽의 공백이나 줄바꿈이 섞인 입력을 처리할 때는, split()을 쓰기 전에 strip()을 활용하면 불필요한 빈 값이 줄어듭니다.
# strip()과 split() 함께 사용
user_input = " hello python "
words = user_input.strip().split()
print(words)실행 결과
['hello', 'python']
이렇게 하면 양쪽 공백이 사라져 ['hello', 'python']만 남습니다.
split()과 join()의 연결: 다시 문자열로 합치기
split() 함수로 나눈 리스트를 다시 하나의 문자열로 합치고 싶을 때는 join() 메서드를 사용합니다. 예를 들어, 단어들을 공백으로 연결해 새 문장을 만들 수 있습니다.
words = ["I", "like", "Python"]
sentence = " ".join(words)
print(sentence)실행 결과
I like Python
join()은 리스트의 각 요소를 지정한 구분자로 연결합니다. split() → join() 조합으로 입력값 가공과 출력 형식을 자유롭게 바꿀 수 있습니다.
split() 함수의 핵심 정리와 연습 문제
지금까지 split() 함수의 기본 원리, 다양한 입력값 처리, 자주 하는 실수와 올바른 활용법을 살펴봤습니다. 아래 핵심 내용을 정리합니다.
- split()은 문자열을 구분자(기본은 모든 공백) 기준으로 나눠 리스트로 반환한다.
- 구분자를 지정할 때는 연속된 구분자가 빈 문자열을 만들 수 있으니 주의해야 한다.
- strip()을 함께 사용하면 입력값 양쪽의 불필요한 공백을 효과적으로 제거할 수 있다.
- 입력값을 처리한 뒤 join()으로 다시 문자열로 합칠 수 있다.
연습 문제
- 사용자로부터 이름과 나이를 입력받아 split()으로 각각 분리한 뒤, 이름과 나이를 출력해보세요.
힌트: input()으로 한 줄을 읽고 split()을 사용하세요. - 쉼표로 구분된 과일 목록 "apple,,banana,orange"를 split(',')로 나누었을 때 생기는 빈 값("")을 제외하고 리스트로 만드는 코드를 작성해보세요.
- split()과 join()을 이용하여, 문장에서 단어의 순서를 뒤집어 출력하는 코드를 만들어보세요.
힌트: split(), 리스트의 reverse() 또는 슬라이싱, join() 활용
위 문제들을 직접 풀어보면 split()의 원리와 응용력을 확실히 잡을 수 있습니다.