python의 자료형 중 집합에 대해 알아보겠습니다.

 

1. 집합 선언

집합을 선언하는 방법은 아래와 같습니다.

a = set()
b = set([1,2,3,4])
c = set([1,4,5,6])
d = set([1,2,3,4,4,4,4])
e = set([1,2,'Jay','Bae','Hello'])
f = {'Korea', 'Canada', 'England', 'France', 'Spain'}
g = {42, 'Jay', (1,2,3), 3.14159}

집합은 서로 다른 자료형으로 저장이 가능하고, f와 g처럼 딕셔너리 형태에서 키가 없다면 집합입니다.

또한 집합은 한 집한 안에서 중복을 허용하지 않기 때문에 d에서 4는 하나만 출력되게 됩니다.

위에 선언한 집합을 출력해보겠습니다.

print('a : ', type(a), a)
print('b : ', type(b), b)
print('c : ', type(c), c)
print('d : ', type(d), d)
print('e : ', type(e), e)
print('f : ', type(f), f)
print('g : ', type(g), g)

>> result
a :  <class 'set'> set()
b :  <class 'set'> {1, 2, 3, 4}
c :  <class 'set'> {1, 4, 5, 6}
d :  <class 'set'> {1, 2, 3, 4}
e :  <class 'set'> {'Bae', 1, 2, 'Hello', 'Jay'}
f :  <class 'set'> {'Korea', 'England', 'France', 'Spain', 'Canada'}
g :  <class 'set'> {42, 3.14159, 'Jay', (1, 2, 3)}

 

 

2. 집합의 추가 & 제거

   
add() 집합의 원소를 추가
remove() 집합의 원소를 제거(단 없는 원소를 삭제 시 에러 출력)
discard() 집합의 원소를 제거(단 없는 원소를 삭제 시 에러 출력 X)
clear() 집합의 모든 원소를 제거

우선 집합 s1를 선언하겠습니다. 

s1 = set([1,2,3,4])

선언된 집합을 이용하여 집합의 원소를 추가 또는 삭제해 보겠습니다.

s1.add(5)
print('s1 : ', s1)
>> s1 :  {1, 2, 3, 4, 5}

s1.remove(3)
print('s1 : ', s1)
>> s1 :  {1, 2, 4, 5}


s1.discard(7)
print('s1 : ', s1) 
>> s1 :  {1, 2, 4, 5}

s1.clear()
print(s1)
>> set()

 

3. 집합 자료형의 활용

   
& 교집합
intersection() 교집합
| 합집합
union 합집합
- 차집합
difference 차집합
isdisjoint 중복 원소 확인 (교집합이라면 false, 아니라면 true 출력)
s1.issubset(s2) s1이 s2의 부분 집합인지 확인
s1.issuperset(s2) s1이 s2를 포함하는 집합인지 확인

 

우선 집합 s1과 s2를 선언하겠습니다.

s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])

 

선언된 집합을 이용하여 위에서 정리된 함수를 알아보겠습니다.

print('s1 & s2 : ', s1 & s2)
print('s1 & s2 : ', s1.intersection(s2)) 
print('s1 | s2 : ', s1 | s2)
print('s1 | s2 : ', s1.union(s2)) 
print('s1 - s2 : ', s1 - s2)
print('s1 - s2 : ', s1.difference(s2)) 
print('s1 & s2 : ', s1.isdisjoint(s2))
print('subset : ', s1.issubset(s2)) 
print('superset : ',s1.issuperset(s2))

>> result
s1 & s2 :  {4, 5, 6}
s1 & s2 :  {4, 5, 6}
s1 | s2 :  {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1 | s2 :  {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1 - s2 :  {1, 2, 3}
s1 - s2 :  {1, 2, 3}
s1 & s2 :  False
subset :  False
superset :  False

'Language > Python' 카테고리의 다른 글

13. python 반복문 - for  (0) 2019.12.18
12. python 제어문 - if문  (0) 2019.12.17
10. python 자료형 - 딕셔너리  (0) 2019.12.15
09. python 자료형 - 튜플  (0) 2019.12.14
08. python 자료형 - 리스트  (0) 2019.12.14

+ Recent posts