집합(set)은 여러 개의 요소를 저장한다는 점에서는 sequence형과 비슷하지만 값을
1)순서 없이 그리고 2)중복 없이 모아 놓은 자료형이라는 점에서 차이점을 지닌다.
1)해시 기능(Hashable)이면서 2)변경 불가능한 자료형만이 집합의 원소로 사용할 수 있다.
리스트는 set을 이용할수없다.
a= set()
a.discard(3)#해당 원소가 없으면 그냥 지나간다
a.remove(3)#해당 원소가 없으면 예외(오류)가 발생하고 프로그램이 정지한다.
lst1 = ['A', 'B', 'C', 'D']
lst2 = ['C', 'D', 'E', 'F']
union = list(set(lst1) | set(lst2))
print( union ) # ['C', 'F', 'A', 'E', 'B', 'D']
union = list(set().union(lst1,lst2))
print( union ) # ['C', 'F', 'A', 'E', 'B', 'D']
lst1 = ['A', 'B', 'C', 'D']
lst2 = ['C', 'D', 'E', 'F']
intersection = list(set(lst1) & set(lst2))
print( intersection ) # ['C', 'D']
intersection = list(set(lst1).intersection(lst2))
print( intersection ) # ['C', 'D']
lst1 = ['A', 'B', 'C', 'D']
lst2 = ['C', 'D', 'E', 'F']
complement = list(set(lst1) - set(lst2))
print( complement ) # ['B', 'A']
complement = list(set(lst1).difference(lst2))
print( complement ) # ['A', 'B']
lst1 = ['A', 'B', 'C', 'D']
lst2 = ['C', 'D', 'E', 'F']
symdiff = list(set(lst1) ^ set(lst2))
print( sym_diff ) # ['F', 'E', 'A', 'B']
sym_diff = list(set(lst1).symmetric_difference(lst2))
print( sym_diff ) # ['F', 'E', 'A', 'B']
출처 : https://zetawiki.com/wiki/Python%EB%A6%AC%EC%8A%A4%ED%8A%B8%ED%95%A9%EC%A7%91%ED%95%A9,%EA%B5%90%EC%A7%91%ED%95%A9,%EC%B0%A8%EC%A7%91%ED%95%A9,%EB%8C%80%EC%B9%AD%EC%B0%A8