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

파이썬에서 두 딕셔너리의 키 차이점을 찾는 방법

집합(Set) 자료형으로 키 차이 구하기

두 파이썬 딕셔너리에 포함된 키의 차이점을 찾으려면 집합(set) 자료형을 활용하는 것이 가장 효과적입니다. 집합은 순서가 없고, 요소의 중복을 허용하지 않으며, 변경 불가능한(immutable) 객체들로만 구성되는 자료구조입니다. 또한 수학의 집합 이론에서 정의된 다양한 집합 연산을 그대로 수행할 수 있다는 장점이 있습니다.

특히 대칭차(symmetric difference) 연산을 사용하면 두 집합에서 공통으로 포함된 요소는 제외하고, 어느 한쪽에만 존재하는 요소들만 추출할 수 있습니다.

예제

두 딕셔너리 객체의 키들로 각각 집합 객체를 생성한 뒤, ^ 연산자를 사용하면 대칭차를 간단하게 구할 수 있습니다.

>>> D1={1:100, 2:200, 3:300}
>>> D2={1:1000, 3:300, 5:500}
>>> set(D1.keys())^set(D2.keys())
{2, 5}

결과 해석

위 예제에서 키 13은 두 딕셔너리 모두에 존재하므로 결과에서 제외되었고, 오직 D1에만 있는 키 2와 D2에만 있는 키 5만 반환되었습니다. 참고로 set(D1.keys()) 대신 D1.keys()를 직접 사용해도 동일하게 동작합니다. 즉, D1.keys() ^ D2.keys()처럼 작성할 수도 있습니다.