본문 바로가기

Language/Python

Python~문자열 나누기 String split(), list 변환, Indexing & Slicing

반응형

python에서 String 문자열을 나누는 여러 방법을 정리해 보았습니다.

split()

문자열을 나누어 list형태로 반환시켜줍니다.

string.split(separator, maxsplit)
  • separator: 문자열을 나누는 기준이 되는 문자
  • maxsplit: 문자열을 나누는 횟수

예제

separator의 디폴트값은 공백으로, 아무것도 입력을 하지 않을 시 공백을 기준으로 문자열을 나누어 줍니다.

str = 'this post is about split, slicing, list'
print(str.split())  # ['this', 'post', 'is', 'about', 'split,', 'slicing,', 'list']
print(str.split(' '))  # 같은 결과를 출력
print(str.split(''))  # ValueError: empty separator 의 에러 발생. 주의 할 것.

separator에 문자를 입력한 예제를 살펴봅시다.

str = 'this post is about split, slicing, list'
print(str.split(','))  # ['this post is about split', ' slicing', ' list']

maxsplit에 숫자를 입력한 예제를 살펴봅시다.
maxsplit의 디폴트 값은 -1로, 나누는 횟수에 제한을 두지 않습니다.

str = 'this post is about split, slicing, list'
print(str.split(',', -1))  # ['this post is about split', ' slicing', ' list']
print(str.split(',', 1))  # ['this post is about split', ' slicing, list']

list 변환

문자열의 문자를 하나하나씩 자르기 위해서는, 한번에 list형으로 변환하는 방법이 있습니다.
list변환이기 때문에, 전자의 split과 동일하게 list형으로 반환시켜 줍니다.

예제

str = 'Hello world'
print(list(str)) # ['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

Indexing & Slicing

split과 달리 list형태가 아닌 문자열로 반환합니다.
문자열의 특정한 부분의 문자만 추출할 때 사용하는 방법입니다.

# 인덱싱
string[index]
# 슬라이싱
string[start index : end index]
  • index: 추출할 문자의 인덱스
  • start index: 슳라이스를 시작할 문자의 인덱스
  • end index: 슬라이스를 끝낼 문자의 인덱스(※이 인덱스의 문자는 포함되지 않는다.)

예제

먼저 인덱싱의 예제를 알아 봅시다.
문자열의 첫 인덱스 값은 0입니다.
마이너스(-)를 사용하면 인덱스를 뒤에서부터 셉니다.

str = 'Hello world'
print(str[1])  # 'e'
print(str[-1]) # 'd'
print(str[11]) # IndexError: string index out of range 문자열의 인덱스를 초과하므로 인덱스 에러 발셍
print(str[-12]) # IndexError: string index out of range 문자열의 인덱스를 초과하므로 인덱스 에러 발셍

이제부터 슬라이싱의 예제를 봅시다.
start index의 디폴트 값은 0으로, 입력 생략시 문자열의 시작 인덱스인 '0'으로 자동으로 설정됩니다.
end index는 가장 마지막 인덱스 +1로, 입력 생략시 자동적으로 문자의 가장 마지막 까지 출력 하게 끔 자동으로 설정이 됩니다.
인덱싱과 동일하게 마이너스(-)를 사용하면 인덱스를 뒤에서 부터 세어서 지정을 할 수 있습니다.

str = 'Hello world'
print(str[:5]) # 'Hello'
print(str[0:5]) # 'Hello'
print(str[7:]) # 'world'
print(str[6:11]) # 'world'
print(str[6:-1]) # 'world'
반응형

'Language > Python' 카테고리의 다른 글

Python~combinations()함수 사용법  (0) 2023.05.24
Python~zip()함수 사용법  (0) 2023.04.14
Python~삼항연산자  (0) 2023.03.22
Python~제곱, 제곱근  (0) 2023.02.14