구분자(구분 기호)로 나뉘어 있는 문자열 리스트를 튜플 리스트로 변환해야 하는 경우, 리스트 컴프리헨션(list comprehension)과 'tuple' 메서드, 'split' 메서드를 함께 활용하면 간단하게 처리할 수 있습니다.
예제
아래는 실제 동작 과정을 보여주는 예제입니다.
my_list = ["21$12", "33$24$48$69", "14$10$44"]
print("The list is :")
print(my_list)
key = "$"
print("The key is :")
print(key)
my_result = [tuple(int(element) for element in sub.split(key)) for sub in my_list]
print("The result is :")
print(my_result)출력 결과
The list is : ['21$12', '33$24$48$69', '14$10$44'] The key is : $ The result is : [(21, 12), (33, 24, 48, 69), (14, 10, 44)]
코드 설명
문자열 값들로 이루어진 리스트를 정의한 뒤 콘솔에 출력합니다.
구분자로 사용할 키(key) 값을 정의하고 콘솔에 출력합니다.
리스트 컴프리헨션을 사용하여 리스트의 각 요소를 순회합니다.
각 문자열은 앞서 정의한 'key'($ 기호)를 기준으로 분할(split)됩니다.
분할된 요소들은 int() 함수로 정수형으로 변환된 후, tuple() 메서드를 통해 하나의 튜플로 묶입니다.
이렇게 생성된 튜플들이 모여 최종적으로 튜플 리스트가 완성되며, 그 결과는 변수에 할당됩니다.
완성된 결과가 콘솔에 출력됩니다.
핵심 포인트
이 방식의 장점은 문자열 길이가 요소마다 달라도 상관없다는 점입니다. 위 예제에서처럼 '21$12'는 2개의 요소로, '33$24$48$69'는 4개의 요소로 분할되어 각각 길이가 다른 튜플로 자연스럽게 변환됩니다. 또한 단 한 줄의 리스트 컴프리헨션으로 전체 변환 로직을 처리하기 때문에 코드가 간결하고 가독성이 높습니다.