튜플을 인접한 쌍(adjacent pair) 형태의 딕셔너리로 변환해야 하는 경우, dict 메서드와 딕셔너리 컴프리헨션(dictionary comprehension), 그리고 슬라이싱(slicing)을 활용할 수 있습니다.
딕셔너리는 데이터를 (키, 값) 쌍의 형태로 저장하는 자료구조입니다. 딕셔너리 컴프리헨션은 반복문을 한 줄로 간결하게 표현하여 딕셔너리를 순회하면서 원하는 연산을 수행할 수 있는 축약 문법입니다.
슬라이싱은 이터러블(iterable)에서 지정한 시작 인덱스부터 끝 인덱스까지의 값을 추출하는 기능으로, 단 끝 인덱스에 해당하는 요소는 결과에 포함되지 않습니다.
예제 코드
my_tuple_1 = (7, 8, 3, 4, 3, 2)
print("첫 번째 튜플은 : ")
print(my_tuple_1)
my_result = dict(my_tuple_1[idx : idx + 2] for idx in range(0, len(my_tuple_1), 2))
print("튜플을 변환한 후의 딕셔너리는: ")
print(my_result)출력 결과
첫 번째 튜플은 :
(7, 8, 3, 4, 3, 2)
튜플을 변환한 후의 딕셔너리는:
{7: 8, 3: 2}코드 설명
- 먼저 튜플을 정의하고, 콘솔에 출력합니다.
dict메서드를 사용하여 튜플의 요소를 두 개씩 순회하면서 딕셔너리로 변환합니다. 여기서range(0, len(my_tuple_1), 2)는 인덱스를 2칸씩 건너뛰며 이동하므로, 각 단계에서 인접한 두 요소가 하나의 (키, 값) 쌍이 됩니다.- 변환된 결과는 변수에 할당됩니다.
- 최종 결과를 콘솔에 출력합니다.
이 방식은 튜플의 길이가 짝수일 때 가장 잘 동작합니다. 만약 튜플 길이가 홀수라면 마지막 요소는 짝이 없어 KeyError가 발생할 수 있으므로, 실무에서는 입력 데이터의 길이를 사전에 검증하는 것이 좋습니다.