Image from wikipedia

집합에서 대칭차(symmetric difference) 메소드를 이용해 대칭차 구하는 법을 알아보겠습니다. 대칭차는 둘 중 하나의 집합에는 속하지만 교집합에는 속하지 않는 원소들의 집합입니다. xor 연산과 비슷합니다

A = {1, 2, 3, 4}
B = {3, 4, 5}
C = set()

print(A.symmetric_difference(B))    # set([1, 2, 5])
print(A.symmetric_difference(C))    # set([1, 2, 3, 4])

print(A ^ B)    # 동일
print(A ^ C)

print(A ^ A)    # set([])

setA.symmetric_difference(setB) 이런식으로 사용할 수 있습니다. ^ operator로도 동일하게 사용할 수 있습니다.

주의할 점은 두 집합 사이의 대칭차만 구할 수 있다는 점입니다.

반응형