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

[파이썬] 리스트(배열)를 문자열로 변환 (Python list to string)

by 왕 달팽이 2020. 3. 14.
반응형

파이썬으로 간단한 알고리즘 문제를 풀다가 문자열을 이루고 있는 각 문자들을 배열로 다룰 필요가 있었습니다. 문자열과 문자 리스트의 상호 변환은 알고리즘 문제 풀이에서 자주 만나게 되는 사용패턴인데요. 스택(Stack)이나 큐(Queue) 같은 자료 구조에 문자열을 이루고 있는 문자들을 넣었다가 빼는 동작을 하고 다시 문자열로 만드는 동작이 필요했습니다.

파이썬의 문자열 타입은 'join(list)' 메서드를 제공하고 있습니다. 'join()' 메서드를 이용하면 리스트를 구성하고 있는 각각의 문자들을 하나의 문자열 형태로 변경해서 반환해줍니다.

다음 예제 코드를 살펴보겠습니다.

str_list = ['H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D']

print(str_list)

print(''.join(str_list)) # List의 Element들을 공백없이 붙임
print(' '.join(str_list)) # List의 Element들을 공백을 이용해서 구분
print('-'.join(str_list)) # List의 Element들을 '-' 문자를 이용해서 구분
print('\n'.join(str_list)) # 한줄에 하나씩 출력

liststr_list라는 이름의 리스트에는 "HELLO WORLD"를 구성하고 있는 문자들이 들어있습니다. 이 코드를 실행해보면 다음과 같은 결과를 출력합니다.

join 메서드 앞에 있는 캐릭터를 이용해서 리스트에 있는 각각의 캐릭터들을 연결시켜 하나의 문자열로 만들어 줍니다. 만일 join 메서드에 사용한 리스트에 캐릭터 타입이 아닌 객체가 속해있으면 다음과 같은 TypeError가 발생합니다.

TypeError: sequence item 5: expected str instance, int found

이 에러는 문자열이 아닌 정수형 값이 섞여 있다는 에러입니다.

반응형

댓글