중첩 튜플(nested tuple)을 사용자가 원하는 키 구조를 가진 딕셔너리 형태로 변환해야 할 때, 리스트 컴프리헨션(list comprehension)을 활용하면 매우 간결하게 처리할 수 있습니다.
아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.
예제
my_tuple = ((6, 'Will', 13), (2, 'Mark', 15), (9, 'Rob', 12))
print("튜플은 다음과 같습니다 : ")
print(my_tuple)
my_result = [{'key': sub[0], 'value': sub[1], 'id': sub[2]}
for sub in my_tuple]
print("변환된 딕셔너리는 다음과 같습니다 : ")
print(my_result)실행 결과
튜플은 다음과 같습니다 :
((6, 'Will', 13), (2, 'Mark', 15), (9, 'Rob', 12))
변환된 딕셔너리는 다음과 같습니다 :
[{'key': 6, 'value': 'Will', 'id': 13}, {'key': 2, 'value': 'Mark', 'id': 15}, {'key': 9, 'value': 'Rob', 'id': 12}]코드 설명
튜플 안에 여러 개의 튜플이 포함된 중첩 튜플을 정의한 뒤, 이를 콘솔에 출력합니다.
리스트 컴프리헨션을 사용하여 외부 튜플의 각 내부 튜플(
sub)을 순서대로 순회합니다.인덱스(0, 1, 2)를 통해 내부 튜플의 각 위치에 있는 값을 추출하여, 새로운 딕셔너리의
'key','value','id'키에 각각 할당합니다.생성된 딕셔너리들의 리스트를 변수에 저장합니다.
최종 변환 결과를 콘솔에 출력합니다.
핵심 포인트
리스트 컴프리헨션은 반복문과 조건문을 한 줄로 압축하여 표현할 수 있는 Python의 강력한 문법입니다. 위 예제처럼 튜플의 인덱스를 참조해 원하는 키 이름으로 재구성하면, 복잡한 반복문 없이도 데이터 구조를 손쉽게 변환할 수 있습니다. 이러한 기법은 CSV나 데이터베이스에서 읽어온 레코드를 딕셔너리 형태로 가공하는 데이터 전처리 작업에서 특히 유용하게 활용됩니다.