Python/Python Basic

Python Basic : split (문자열 나누기, 문자열을 나눠서 list로 만들기, 문자열 list 변환)

CosmosProject 2022. 5. 24. 01:20
728x90
반응형

 

 

 

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를 사용할 수 있습니다.

 

 

 

 

728x90
반응형