Python 프로그래밍에서 컬렉션 타입을 다른 타입으로 변환하는 작업은 매우 자주 필요합니다. 이 글에서는 딕셔너리에 저장된 키-값 쌍을 튜플로 변환하여, 최종적으로 튜플들을 요소로 가지는 리스트를 만드는 방법을 알아보겠습니다. 각각의 키-값 쌍이 하나의 튜플이 되고, 이 튜플들이 모여 하나의 리스트를 구성하게 됩니다.
items() 메서드 활용하기
딕셔너리의 items() 메서드를 사용하면 각 키-값 쌍을 순회할 수 있습니다. 여기에 for 루프를 결합해 해당 값들을 튜플로 묶고, 모든 튜플을 최종 리스트에 담는 방식입니다.
예제
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'}
# items() 사용
res = [(k, v) for k, v in dictA.items()]
# 결과 출력
print(res)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]zip() 함수 활용하기
또 다른 방법은 zip() 함수를 사용하는 것입니다. zip 함수는 키와 값을 짝지어 튜플 형태로 묶어주며, 이후 list() 함수를 적용하면 전체 결과를 리스트로 변환할 수 있습니다.
예제
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'}
# zip() 사용
res = list(zip(dictA.keys(), dictA.values()))
# 결과 출력
print(res)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]append() 메서드 활용하기
append() 메서드를 활용하면 키-값 쌍으로 튜플을 만든 뒤, 그 결과를 하나씩 리스트에 추가할 수 있습니다. for 루프를 통해 딕셔너리를 순회하며 최종 결과를 완성합니다.
예제
dictA = {'Mon': '2 pm', 'Tue': '1 pm', 'Fri': '3 pm'}
# 빈 리스트 초기화
res = []
# 튜플을 res에 추가
for i in dictA:
tpl = (i, dictA[i])
res.append(tpl)
# 결과 출력
print(res)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
[('Mon', '2 pm'), ('Tue', '1 pm'), ('Fri', '3 pm')]마무리
세 가지 방법 모두 동일한 결과를 반환하지만, 상황에 따라 적합한 방식이 다릅니다. 간결함과 가독성을 원한다면 items()와 리스트 컴프리헨션 조합이 가장 파이썬다운 방식이며, 키와 값을 별도로 처리해야 하는 경우에는 zip()이 유용하고, 반복 과정에서 추가 로직이 필요하다면 append() 방식이 적합합니다.