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 |