파이썬 set() 차집합, 교집합, 합집합

allnight5·2022년 11월 16일
0

python 함수

목록 보기
2/12

파이썬 집합 Set

집합(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

profile
공부기록하기

0개의 댓글