Python에서 딕셔너리 비교의 기본: == 연산자
Python에서 딕셔너리(dict) 역시 하나의 클래스이며, 내부적으로 __eq__ 메서드가 오버라이드되어 있습니다. 그렇기 때문에 별도의 로직 없이 == 연산자만으로 두 딕셔너리가 서로 같은지 여부를 손쉽게 확인할 수 있습니다.
== 연산자는 두 딕셔너리가 동일한 키(key)와 값(value) 쌍을 모두 가지고 있는지를 비교합니다. 이때 키-값 쌍의 저장 순서는 비교 결과에 영향을 주지 않습니다.
예제
a = {'foo': 10, 'bar': 150}
b = {'foo': 10, 'bar': 150}
print(a == b)출력
True
위 예제에서 a와 b는 완전히 동일한 키와 값을 가지고 있으므로 True가 출력됩니다. 반대로 키나 값 중 하나라도 다르면 False가 반환됩니다.
두 딕셔너리의 공통 항목 찾기
두 딕셔너리 사이에서 공통으로 존재하는 항목(키-값 쌍)의 목록이 필요하다면, items() 메서드로 항목들을 집합(set)으로 변환한 뒤 교집합 연산자인 &를 적용하면 됩니다.
예제
a = {'foo': 10, 'bar': 150}
b = {'foo': 10, 'baz': 50}
shared = set(a.items()) & set(b.items())
print(shared)출력
{('foo', 10)}실행 결과를 보면 두 딕셔너리에 모두 존재하는 ('foo', 10) 쌍만 추출된 것을 확인할 수 있습니다. 이 방식은 키뿐만 아니라 값까지 일치해야 공통 항목으로 인정됩니다. 만약 공통 키만 찾고 싶다면 a.keys() & b.keys()처럼 키 뷰 객체에 바로 교집합 연산을 적용하는 것도 가능합니다.