본문 바로가기
카테고리 없음

파이썬 split , join 기능 완벽 가이드

by #포도@$#%$##$%$$#%#%# 2021. 9. 25.

여러분은 파레토의 법칙을 알고 계신가요?

 

일명 8:2의 법칙이라고 알려져 있습니다.

 

모든 전체 결과는 약 20%가 나머지 80%의 결과를 낸다는 법칙입니다.

 

파이썬에서 문자열을 다루는 것은 아주 기본이면서,

 

가장 핵심적인 기능입니다.

 

실제로 파이썬을 통해서 무언가를 하려고 하면, 대부분은 바로 이 문자열 부분에서

 

많이 막히시게 될껍니다.

 

파이썬 문자열 기능도 정말 여러가지가 있는데

 

그중에서도 파이썬 문자열 기능중의 꽃이라고 할 수 있는 split 과 join 기능에 대해서 

 

한번 알아보도록 하겠습니다.

 

 

split join은 언제 쓸까?

 

답은 정해져 있습니다.

 

바로 문자열을 다룰때 쓰입니다.

 

문자열 편집은 너무 다양하고 광범위하게 쓰여서

 

꼭 뭐다! 라고 콕집어서 설명하기는 어렵습니다.

 

코드를 작성하다보면 문자열을 파싱(쪼개서) 사용해야 할 일이 빈번하게 생깁니다.

 

예를 들어 볼까요?

 

 

 

예를 들어서 네이버 웹튠 페이지에 가면

 

각 요일별로 웹튠들을 분류 해 놓았습니다.

 

사진

 

[요일 전체] 를 클릭하면 화면이 바뀌는데

 

그 주소가

 

https://comic.naver.com/webtoon/weekday 입니다.  

 

이  url 주소를 변경해서 사용해야 할 일이 생깁니다.

 

보통 url 같은 경우에는 구분자 / 를 통해서 파싱하는 경우가 많습니다.

 

https: , comic.naver.com , webtoon , weekday  와 같이 말이죠. 

 

 

파이썬 split 기능 쓰는법 , 특징

자, 파이썬에서 split기능을 어떤때 쓰는지 이해했으니

 

split 기능은 어떻게 쓰는지

 

어떤 특징이 있는지 한번 알아볼 차례입니다.

 

의외로 split 기능만 이해하고, 특징에 대해선

 

대충이해하고 쓰다가, 나중에 오류에 막혀서 고생하는 분들이 많습니다.

 

쓰는 법도 중요하지만, split 기능의 특징까지 이해하고 계셔야

 

나중에 오류없이 사용 하실 수 있을겁니다.

 

(안그러면 나중에 또 split 기능 또 찾아보러 온다에 500원 걸겠습니다)

 

 

 

 

 

 

형식 : 문자열변수이름.split('구분자')

 

이 순서를 잘 기억하세요.

 

파싱할 문자열 변수이름이 먼저 와야 합니다.

 

저는 url 이라는 변수를 만들어서 'https://comic.naver.com/webtoon/weekday' 정보를 넣겠습니다.

 

그리고 나서 url.split('/')으로 초기화 하면 https: , comic.naver.com , webtoon , weekday 으로 파싱이 됩니다.

 

그리고 결과 값은 문자열 형식이 아닌 리스트 형태로 리턴 됩니다!!!

 

 

 

 

 

 

 

#1) 주의 사항 : 가끔 아래 그림같이 문자열변수이름과 split의 순서를 바꿔서 오류를 내시는 분들이 계십니다.

 

 

#2) 주의 사항 :  구분자를 쓸때 콤마 (' ')를 빼놓지 마세요.

 

문자열을 구분하는 기준은 무조건 콤마(' ')가 들어갑니다.

 

콤마를 빼고 구분자를 넣으면 오류가 발생합니다.

 

 

 

 

 

split( 구분자) 기능에서 괄호 안에 있는 구분자를 주목해 주셔야 합니다.

 

구분자는 우리가 파싱할 문자열을 구분할 기준입니다.

 

'https://comic.naver.com/webtoon/weekday' 에서 구분할 기준은 / 로 할 겁니다.

 

그럼 split() ,에서 괄호 안에 구분자인 / 를 넣어줘야 됩니다.

 

실행하면 아래 그림과 같습니다.

 

 

 

 

* 착각하지 말것 : 

 

그냥 url.split('/') 썼다고 이제부터 url 이 파싱이 되었다고 착각하면 안됩니다.

 

저건 그냥 값만 리스트 값으로 "리턴"만  해서 결과값만 보여준겁니다.

 

그냥 url.split('/') 이렇게만 실행하고 다시 url이 파싱 되어 있는지 확인해 볼까요?

 

네 역시 url 에 아무런 일도 일어나지 않았네요.

 

당연합니다. 실행하고 나서 변수에 다시 대입해서 초기화 시켜주지 않았기 때문입니다.

 

 

 

그럼 이번에는 파싱한 결과를 다시 url 변수에 넣은 후에 결과를 볼까요?

이제는 파싱한 결과값이 잘 나오네요

 

 

 

*구분자를 안 넣으면? 

디폴트로 공백을 구분자로해서 문자열을 분리하게 됩니다.

위의 사진의 url 에는 공백이 없기 때문에 파싱이 안된 것처럼 보입니다.

(공백이 있는 것처럼 보이지만 실제로는 공백이 없는 문자열입니다)

 

 

 

 

새로운 다른 예제를 보겠습니다.

 

info 라는 새로운 변수를 만들어

 

info = 'name:park age:12 job:doctor sex:male'

 

이라는 문자열로 초기화 시켰습니다.(아래 그림 참조)

 

 

그리고 스플릿 기능을 써서 공백을 기준으로 나누어 보겠습니다

 

파이썬에서 split 기능을 쓰면 리스트 형태이기 때문에

 

이 리스트를 다시 문자열의 형태로 하려면

 

for 문을 써서 리스트 안에 있는 각각의 요소를 가져 와야합니다.

 

 

이제 리스트 형태가 아닌 문자열 형태로 잘 가져오네요 ㅎㅎ

 

 

파이썬 숨겨진 split() 기능

 

파이썬에서 split기능을 쓰면 구분자대로 나누어 주는데

 

split을 쓰고 나서 쪼개인 요소들 만큼 변수를 같이 초기화 해주면

 

리스트 형태가 아닌 문자열 형태로 저장됩니다.

 

무슨 소린지 예제를 보면서 설명 드릴게요

 

리스트 num2 의 요소 1개(name:park)를 받아서 다시 : 를 구분자로 해서 변수숫자와

 

파싱한 단어 갯수가 맞게 a1 , b1에 

 

나누어 담았습니다.

 

그럼 split 을 사용했음에도 불구하고


변수 a1, b1에 각각 문자열 형태로 각각 저장된 것을 확인 할 수 있습니다.

 

 

 

파이썬 join 기능 사용하기

 

join 기능은 리스트에 있는 요소들을 기준점을 잡아서

 

하나의 문자열로 바꾸어 주는 기능입니다.

 

split() 기능과는 반대입니다.

 

방법은 간단해요

 

'연결할 기준문자'.join(연결할 리스트)

 

 

파싱 해놨던 url 을 다시 붙여서 원상복구 시켜보았습니다.

 

짠~원래 대로 복구가 된 것을 볼 수 있습니다.

 

 

이것 저것 설명하다 보니 다른 편보다 조금 길어졌네요.

 

오늘은 이것으로 마치겠습니다.