Python에서 튜플로 이루어진 리스트를 하나의 문자열로 평탄화(flatten)해야 하는 경우가 종종 있습니다. 이럴 때 str() 메서드와 strip() 메서드를 함께 사용하면 아주 간단하게 해결할 수 있습니다.
리스트와 튜플의 기본 개념
파이썬의 리스트는 정수, 실수, 문자열 등 서로 다른 자료형의 값을 모두 담을 수 있는 유연한 자료구조입니다. 튜플 리스트는 이름 그대로 여러 개의 튜플이 리스트 안에 감싸져 있는 형태를 의미합니다.
- str() 메서드 : 전달받은 데이터를 문자열 자료형으로 변환합니다.
- strip() 메서드 : 문자열 양 끝에서 지정한 특정 문자나 값을 제거합니다.
예제 코드
아래는 튜플 리스트를 문자열로 병합하는 과정을 보여주는 예제입니다.
my_list = [(11, 14), (54, 56), (98, 0), (13, 76)]
print("The list is : ")
print(my_list)
my_result = str(my_list).strip('[]')
print("The list of tuple flattened to string is: ")
print(my_result)실행 결과
The list is : [(11, 14), (54, 56), (98, 0), (13, 76)] The list of tuple flattened to string is: (11, 14), (54, 56), (98, 0), (13, 76)
코드 설명
- 튜플로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.
str()함수로 리스트 전체를 문자열로 변환합니다.- 변환된 문자열에
strip('[]')을 적용하여 앞뒤의 대괄호 '[' 와 ']' 를 제거합니다. - 결과를 변수
my_result에 할당한 후 콘솔에 출력합니다.
참고 : join()을 활용한 대안 방법
대괄호만 제거하는 방식 외에도, 각 튜플을 구분자로 연결하고 싶다면 join() 메서드와 제너레이터 표현식을 조합할 수 있습니다.
my_list = [(11, 14), (54, 56), (98, 0), (13, 76)] result = ', '.join(str(t) for t in my_list) print(result)
이 방법 역시 동일하게 (11, 14), (54, 56), (98, 0), (13, 76) 형태의 문자열을 얻을 수 있으며, 구분자를 자유롭게 지정할 수 있다는 장점이 있습니다.