[Python] Split & Join
본 포스팅은 edwith BoostCourse에서 ‘머신러닝을 위한 파이썬’ 강의를 듣고 한 포스팅입니다.
파이썬에서는 기존의 자바나 C++과는 다르게 문자열과 배열(리스트)를 반복문을 쓰지 않고 간편하게 함수로 처리할 수 있다. 그 중 대표적인 함수가 Split 함수와 Join 함수이다.
- Split 함수
Split 함수는 String 타입의 값을 일정문자를 기준으로 나눠서 리스트 형태로 변환시켜준다.
element = 'How are you?'.split()
split() 함수는 파라미터를 아무것도 주지 않을 경우 공백으로 문자를 나누게 된다. 따라서 위 element를 split()할 경우, 다음과 같이 출력된다.
print(element)
['How', 'are', 'you?']
‘,’를 기준으로 문자를 나누고 싶다면 split() 함수에 파라미터를 전달해주면 된다.
element = 'PUBG,Overwatch,League Of Legends,BDO'.split(',')
출력은 다음과 같다.
print(element)
['PUBG', 'Overwatch', 'League Of Legends', 'BDO']
파이썬에서는 unpacking이라는 기법을 자주쓴다. split() 함수를 이용해 나온 결과 값을 각각의 변수에 넣어주면, 각각의 변수에 결과 값이 매핑이된다.
game1, game2, game3, game4 = element.split(',')
game1 에는 PUBG, game2에는 Overwatch, game3에는 League Of Legends, game4에는 BDO가 매핑이 되어 들어가게 된다.
2. Join 함수
Split() 함수가 나누는데 목적이 있다면, Join() 함수의 경우는 각각의 String 리스트를 하나의 String으로 합치는데 목적이 있다.
subject = ['math', 'english', 'physics', 'biology']
위와 같은 리스트의 요소들을 합치고 싶다면, 다음과 같이 코드를 작성하면 된다.
result = ''.join(subject)
이를 출력해보면 다음과 같이 출력이 된다.
print(result)
mathenglishphysicsbiology
그런데 위의 코드는 아무런 기준이 없이 그냥 다닥다닥 요소들을 붙이기만 했다. 만약 어떤 문자를 기준으로 붙이고 싶다면 Split()과 마찬가지로 파라미터를 주면 된다. 방식은 다음과 같다.
result = ','.join(subject)
위의 코드처럼 작성을 하면 ,를 기준으로 요소들이 붙게 된다.
Split()와 Join() 함수는 텍스트 데이터를 다룰 때 많이 사용하게 된다. 특히 영어의 경우는 한국어보다 공백으로 토큰화 시키기가 쉽고 단어를 판별하기에 상대적으로 좋아서 이 함수들을 많이 사용하게 된다. 꼭 알아두어야 하는 함수들 중 하나이다.