집합(set)란?
집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
집합의 특징은 중복이 없으며, 순서도 없다.
1. 집합의 구성
my_set = {1,2,3,3,3}
print(my_set) # {1, 2, 3}
3개의 3이 터미널에는 하나만 출력되어 중복이 안 되는 모습이다.
java = {"정상길", "김찬호", "손인욱"}
python = set(["정상길", "박종우"])
예를 들어, 위처럼 자바와 파이썬의 개발자의 집합을 구성하자.
중괄호{ } 또는 set([ ])으로 구성 할 수 있다.
2. 여러가지 집합
2-1) 교집합
# 교집합
print(java & python) # {'정상길'}
print(java.intersection(python)) # {'정상길'}
자바와 파이썬을 둘 다 구사하는 개발자는 교집합을 통해 나타낼 수 있다.
& 또는 intersection( )으로 가능하다.
2-2) 합집합
# 합집합
print(java | python) # {'김찬호', '정상길', '박종우', '손인욱'}
print(java.union(python)) # {'김찬호', '정상길', '박종우', '손인욱'}, 순서 X
자바와 파이썬 중 둘 중에 하나라도 할 줄 하는 개발자.
|( or) 또는 union( )으로 가능하다.
이때 터미널 창엔 순서와 중복이 없어서 '정상길'이 한 번 나오고 순서가 뒤바뀐 모습이다.
2-3) 차집합
# 차집합
print(java - python) # {'김찬호', '손인욱'}
print(java.difference(python)) # {'김찬호', '손인욱'}
차집합도 가능하다.
-와 difference( )를 통해 가능하다.
3. 수정과 편집
# 수정과 편집
python.add("미야")
python.update(["장지환", "최인석"])
java.remove("김찬호")
add( )로 추가, update([ ])로 다량으로 추가, remove( )으로 제거도 가능하다.