일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Mac
- SQL
- Kotlin
- string
- django
- PostgreSQL
- c#
- Google Excel
- PySpark
- math
- hive
- numpy
- matplotlib
- list
- GIT
- array
- Tkinter
- Github
- PANDAS
- Python
- google apps script
- 파이썬
- Java
- dataframe
- Apache
- Redshift
- Google Spreadsheet
- Excel
- gas
- Today
- Total
달나라 노트
Python Basic : split (문자열 나누기, 문자열을 나눠서 list로 만들기, 문자열 list 변환) 본문
Python Basic : split (문자열 나누기, 문자열을 나눠서 list로 만들기, 문자열 list 변환)
CosmosProject 2022. 5. 24. 01:20
split method는 문자열에 적용해서 문자열을 특정 텍스트를 기준으로 나눠 list로 만들어줍니다.
Syntax
string.split(separator, maxsplit)
사용법은 위와 같습니다.
어떤 string에 split method를 적용할 수 있습니다.
- separator
split method는 parameter로 separator를 받습니다.
separator가 주어지지 않는다면 공백(' ')이 기본값으로 간주됩니다.
- maxsplit
최대 몇개 separator를 감지할지를 의미합니다.
maxsplit의 기본값은 -1이며, -1은 발견되는 모든 separator에 대해서 문자열을 나누라는 의미입니다.
str_test = 'Apple Banana Peach Grape'
list_test = str_test.split()
print(list_test)
-- Result
['Apple', 'Banana', 'Peach', 'Grape']
str_test에 split을 적용했습니다.
split의 인자로 아무것도 주어지지 않았으므로 기본값인 공백으로 문자열을 나눕니다.
str_test = 'Apple, Banana, Peach Grape'
list_test = str_test.split(', ')
print(list_test)
-- Result
['Apple', 'Banana', 'Peach Grape']
이번에는 ', '를 기준으로 str_test를 나눴습니다.
str_test에는 ', '라는 문자가 총 2개가 있으니 이걸 기준으로 총 3개의 부분으로 나눠진 것을 볼 수 있습니다.
str_test = 'Apple,Banana,Peach Grape,Watermelon'
list_test = str_test.split(',', 2)
print(list_test)
-- Result
['Apple', 'Banana', 'Peach Grape,Watermelon']
위 예시는 split에 maxsplit 값을 2로 설정한 코드입니다.
split의 separator는 콤마(,)로 설정되었습니다.
str_test에서 존재하는 콤마(,)는 총 3개입니다.
따라서 maxsplit 값이 별도로 주어지지 않았다면 ['Apple', 'Banana', 'Peach Grape', 'Watermelon']이 return될 것입니다.
근데 maxsplit값을 2로 설정했기 때문에 str_test에서 가장 왼쪽부터 콤마(,)를 감지하기 시작하여 두 번째로 감지되는 콤마까지만 split을 적용합니다.
- str_test = 'Apple,Banana,Peach Grape,Watermelon'
따라서 결과를 보면 Apple 뒤에 있는 첫 번째 콤마와 Banana 뒤에 있는 두 번째 콤마까지만 split이 적용되고 Grape 뒤에 있는 콤마에는 split이 적용되지 않았습니다.
- 추가 팁
만약에 world란 글자를 알파벳 하나하나 나눠서 list로 만들고싶으면 어떻게 해야할까요?
str_test = 'world'
list_test = str_test.split('')
print(list_test)
-- Result
ValueError: empty separator
생각나는건 위처럼 split method에 ''를 넣어서 그냥 아무것도 아닌 비어있는 값을 separator로 하여 글자를 분리하라고 적으면 될 것 같습니다.
하지만 위 코드의 결과를 보면 에러가 발생합니다.
split method는 위처럼 아무것도 없는 empty separator는 이용할 수 없습니다.
이럴 땐 아주 간단한 방법이 있습니다.
list method를 사용하는겁니다.
아래 코드를 보시죠.
str_test = 'world'
list_test = list(str_test)
print(list_test)
-- Result
['w', 'o', 'r', 'l', 'd']
list method에 텍스트를 담기만 했더니 텍스트가 글자단위로 다 쪼개져서 list가 되었습니다.
split method를 사용할 필요도 없죠.
이런식으로 텍스트를 글자별로 분리시킬 때에는 아주 간단하게 list method를 사용할 수 있습니다.