Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 딕셔너리를 튜플 리스트로 변환하는 3가지 방법

파이썬에서는 한 컬렉션 타입을 다른 타입으로 변환하는 작업이 매우 흔합니다. 데이터 처리 요구 사항에 따라 딕셔너리에 저장된 키-값 쌍을 리스트 안의 튜플 형태로 변환해야 할 때가 있습니다. 이 글에서는 파이썬에서 딕셔너리를 튜플 리스트로 변환하는 대표적인 세 가지 방법을 살펴보겠습니다.

1. items() 메서드와 리스트 컴프리헨션 활용

가장 간결하고 파이썬다운 방법은 items() 메서드를 리스트 컴프리헨션과 함께 사용하는 것입니다. 딕셔너리의 각 키와 값을 순회하면서 바로 튜플로 묶어 새 리스트를 생성할 수 있습니다.

예제 코드

Adict = {30:'Mon',11:'Tue',19:'Fri'}

# 주어진 딕셔너리
print("주어진 딕셔너리: ", Adict)

# items()와 리스트 컴프리헨션 사용
Alist = [(key, val) for key, val in Adict.items()]

# 결과 출력
print("튜플 리스트: ", Alist)

실행 결과

주어진 딕셔너리: {30: 'Mon', 11: 'Tue', 19: 'Fri'}
튜플 리스트: [(30, 'Mon'), (11, 'Tue'), (19, 'Fri')]

2. zip() 함수 활용

zip() 함수는 인자로 전달된 여러 iterable의 요소들을 하나씩 짝지어 묶어줍니다. 딕셔너리의 키 목록과 값 목록을 각각 keys()values()로 가져온 뒤 zip()으로 결합하고, 그 결과를 list()로 감싸면 키-값 쌍이 튜플 형태의 리스트로 변환됩니다.

예제 코드

Adict = {30:'Mon',11:'Tue',19:'Fri'}

# 주어진 딕셔너리
print("주어진 딕셔너리: ", Adict)

# zip 함수 사용
Alist = list(zip(Adict.keys(), Adict.values()))

# 결과 출력
print("튜플 리스트: ", Alist)

실행 결과

주어진 딕셔너리: {30: 'Mon', 11: 'Tue', 19: 'Fri'}
튜플 리스트: [(30, 'Mon'), (11, 'Tue'), (19, 'Fri')]

3. append() 메서드와 for 반복문 활용

가장 전통적인 방식으로, 빈 리스트를 먼저 만든 후 for 반복문을 통해 딕셔너리를 순회하며 각 키-값 쌍을 튜플로 만들어 리스트에 하나씩 추가하는 방법입니다. 코드가 다소 길지만 변환 과정을 단계별로 명확하게 제어할 수 있다는 장점이 있습니다.

예제 코드

Adict = {30:'Mon',11:'Tue',19:'Fri'}

# 주어진 딕셔너리
print("주어진 딕셔너리: ", Adict)

Alist = []

# append 사용
for x in Adict:
    k = (x, Adict[x])
    Alist.append(k)

# 결과 출력
print("튜플 리스트: ", Alist)

실행 결과

주어진 딕셔너리: {30: 'Mon', 11: 'Tue', 19: 'Fri'}
튜플 리스트: [(30, 'Mon'), (11, 'Tue'), (19, 'Fri')]

정리

세 가지 방법 모두 동일한 결과를 반환하지만, 상황에 따라 적합한 방식이 다릅니다. 일반적으로는 리스트 컴프리헨션이 가장 간결하고 가독성이 좋아 권장되며, 이미 익숙한 zip() 방식도 훌륭한 선택입니다. 반복 로직에 추가 처리가 필요하거나 초보자에게 과정을 설명해야 하는 경우에는 append()와 for 반복문 방식이 유용합니다. 자신의 코드 스타일과 프로젝트 요구 사항에 맞는 방법을 선택하면 됩니다.