안녕하세요. BlockDMask 입니다.
오늘 알아볼 파이썬 함수는 split 함수 입니다. 문자열을 이쁘게 나눠서 리스트로 만들때 사용하는 함수 입니다.
한번 알아보도록 하겠습니다.
<목차>
1. split 함수?
2. split 함수 예제
1. 파이썬 split 함수
함수의 모양
문자열.split()
문자열.split('구분자')
문자열.split('구분자', 분할횟수)
문자열.split(sep='구분자', maxsplit=분할횟수)
이런식의 모양들이 있습니다. 제일 마지막 것이 제일 정확합니다.
문자열.split() 함수는 문자열을 일정한 규칙으로 잘라서 리스트로 만들어 주는 함수입니다.
좀더 정확하게 말하자면
문자열.split(sep, maxsplit) 함수는 문자열을 maxsplit 횟수만큼 sep의 구분자를 기준으로 문자열을 구분하여 잘라서 리스트로 만들어 줍니다.
- sep 파라미터
해당 파라미터의 기본값은 none이며, 이때 동작은 띄어쓰기, 엔터를 구분자로 하여 문자열을 자릅니다.
문자열.split(sep=',') 이라 한다면 문자열에서 "," 를 기준으로 자르게 됩니다.
sep은 생략하고 문자열.split(',')으로 사용해도 무방합니다.
- maxsplit 파라미터
해당 파라미터의 기본값은 -1 이며, 이때 동작은 제한없이 자를 수 있을 때 까지 문자열 전체를 자릅니다.
문자열.split(maxsplit=1) 이라 하면, 문자열을 1번만 자르게 됩니다.
역시 maxsplit 를 생략이 가능하지만 앞에 sep 파라미터가 있어야지만 가능합니다.
문자열.split(1) 불가능
문자열.split(',', 1) 가능
문자열.split(maxsplit=1) 가능
2. 파이썬 split 함수 예제
2-1) split 함수 예제 1
1
2
3
4
5
6
|
s = "a b c d e f g"
print(f's : {s}')
r = s.split()
print(f's.split() : {r}')
|
cs |
파라미터를 아무것도 사용하지 않고 문자열.split() 를 사용하게 되면 위 예제와 같이 띄어쓰기, 엔터를 구분하여 문자열을 나누게 됩니다.
또한, maxsplit 파라미터도 정해주지 않았기 때문에 나눌 수 있을때 까지 나누게 된 것을 볼 수 있습니다.
2-2) split 함수 예제 2
1
2
3
4
5
6
7
8
9
10
|
s = "aa.bb.cc.dd.ee.ff.gg"
print(f's : {s}')
r0 = s.split()
r1 = s.split('.')
r2 = s.split(sep='.')
print(f"s.split() : {r0}")
print(f"s.split('.') : {r1}")
print(f"s.split(sep='.') : {r2}")
|
cs |
띄어쓰기가 없는 문자열 "aa.bb.cc.dd.ee.ff.gg"을 기준으로 나누어 보았습니다.
- r0 : 문자열.split()
문자열에서 띄어쓰기, 엔터를 기준으로 문자열을 나누어 리스트로 바꾸라 하였지만
문자열에는 띄어쓰기도 엔터도 없기 때문에 문자열이 그대로 리스트로 바뀌어 ['aa.bb.cc.dd.ee.ff.gg'] 가 된 것을 알 수 있습니다.
그렇게 길이가 1인 리스트가 만들어진 것 입니다.
- r1 : 문자열.split('.'), r2 : 문자열.split(sep='.')
문자열에서 sep 파라미터를 '.'로 설정해서 split 함수를 호출했습니다.
"aa.bb.cc.dd.ee.ff.gg"의 문자열이기 때문에 '.'을 기준으로 잘 나누어 져서 리스트에 들어간 것을 볼 수 있습니다.
['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg'] 인 길이가 7인 리스트가 만들어진것을 볼 수 있습니다.
2-3) split 함수 예제 3
1
2
3
4
5
6
7
8
9
10
11
12
|
s = "aa.bb.cc.BlockDMask.ee.ff.gg.python.example"
print(f'{s}')
r0 = s.split()
r1 = s.split('.', 3)
r2 = s.split(sep='.', maxsplit=3)
r3 = s.split('.', maxsplit=3)
print(f"\ns.split()\n{r0}")
print(f"\ns.split('.', 3)\n{r1}")
print(f"\ns.split(sep='.', maxsplit=3)\n{r2}")
print(f"\ns.split('.', maxsplit=3)\n{r3}")
|
cs |
띄어쓰기가 없는 문자열 s = "aa.bb.cc.BlockDMask.ee.ff.gg.python.example"을 만들었습니다.
해당 문자열을 '.' 구분자를 이용해서 나누되, maxsplit 파라미터를 이용해서 나누는 횟수를 제한해 보았습니다.
- 문자열.split('.', 3)
- 문자열.split(sep='.', 3)
- 문자열.split('.', maxsplit=3)
- 문자열.split(sep='.', maxsplit=3)
모두 같은 뜻 입니다. 이중 입맛에 맞는 것을 골라서 사용하면 됩니다.
이상으로 문자열을 리스트로 잘라주는 split 함수에 대해서 알아보았습니다.
감사합니다.
'<개인공부> > [Python]' 카테고리의 다른 글
[python] 파이썬 올림, 내림 함수 (ceil, floor) (0) | 2021.05.12 |
---|---|
[python] 파이썬 pow, sqrt 함수 (제곱, 제곱근) (0) | 2021.05.10 |
[python] 파이썬 람다(lambda) 함수 설명 및 예제 (1) | 2021.05.05 |
[python] 파이썬 range 함수 정리 및 예제 (숫자 구하기) (0) | 2021.05.03 |
[python] 파이썬 join 함수 정리 및 예제 (문자열 합치기) (3) | 2021.01.14 |
[python] 파이썬 정렬 sorted 함수 정리 및 예제 (3) | 2021.01.11 |
[python] 파이썬 True, False 불(bool) 자료형 사용법 및 예제 총정리 (2) | 2021.01.08 |
[python] 파이썬 출력 print 정리 및 예제 (0) | 2021.01.06 |