[Python] 파이썬 자료형(6) 집합(Set)형
집합형 (Set)
집합(Set)형 은 말 그대로 데이터들의 집합을 관리하는 자료형입니다.
다음과 같이 set()의 괄호 안에 리스트나 문자열을 입력하여 생성합니다.
!!!
그런데 조금 이상하지 않나요?
우선 출력결과가 순서 없이 뒤죽박죽으로 섞여있습니다.
그리고 중복되는 문자들도 하나씩만 출력됩니다.
여기서 집합 자료형의 중요한 특징 두 가지를 알 수 있습니다.
1. 중복을 허용하지 않는다.
2. 순서가 없다.
리스트나 튜플 자료형은 순서가 있기(ordered) 때문에, 인덱싱 및 슬라이싱을 통해 자료형의 값을 얻을 수 있었지만, 집합자료형은 딕셔너리 자료형과 같이 순서가 없기(unordered) 때문에 인덱싱 및 슬라이싱으로 값을 얻을 수 없습니다.
각 자료형의 특징들 비교는 다음 장에서 해드리겠습니다.
1_(1) (기호를 이용한)집합 자료형의 연산
집합 자료형을 통해 각 자료들의 교집합 합집합, 차집합등을 구할 수 있습니다.
이는 집합자료형에서 매우 유용하게 쓰이는 기능이니, 잘 숙지할 수 있도록 합니다.
1. 교집합: 집합명 & 집합명
set_1 = set([1, 2, 3, 4, 5, 6])
set_2 = set([4, 5, 6, 7, 8, 9])
print(set_1 & set_2)
=> {4, 5, 6}
2. 합집합: 집합명 | 집합명
set_1 = set([1, 2, 3])
set_2 = set([4, 5, 6])
print(set_1 | set_2)
=> {1, 2, 3, 4, 5, 6}
3. 차집합: 집합명 - 집합명
set_1 = set([1, 2, 3, 4, 5, 6])
set_2 = set([4, 5, 6])
print(set_1 - set_2)
=> {1, 2, 3}
1_(2) (함수를 이용한) 집합 자료형의 연산
1. 교집합: 집합명.intersection(집합명)
set_1 = set([1, 2, 3, 4, 5, 6])
set_2 = set([4, 5, 6, 7, 8, 9])
print(set_1.intersection(set_2))
=> {4, 5, 6}
2. 합집합: 집합명.union(집합명)
set_1 = set([1, 2, 3])
set_2 = set([4, 5, 6])
print(set_1.union(set_2))
=> {1, 2, 3, 4, 5, 6}
3. 차집합: 집합명.difference(집합명)
set_1 = set([1, 2, 3, 4, 5, 6])
set_2 = set([4, 5, 6])
print(set_1.difference(set_2))
=> {1, 2, 3}
2) 집합 자료형 활용하기
집합 자료형에 대한 개념과 연산에 대해 알아보았으니, 마지막으로 집합 자료형과 관련된 유용한 함수 몇 가지를 알아보겠습니다.
1. 값 1개 추가하기: 집합명.add(값)
set_name = set([1, 2, 3, 4])
set_name.add(5)
print(set_name)
=> {1, 2, 3, 4, 5}
2. 값 여러 개 추가하기: 집합명.update(list 형태의 값)
set_name = set([1, 2, 3, 4])
set_name.update([5, 6, 7])
print(set_name)
=> {1, 2, 3, 4, 5, 6, 7}
3. 특정 값 제거하기: 집합명.remove(값)
set_name = set([1, 2, 3, 4, 5])
set_name.remove(5)
print(set_name)
=> {1, 2, 3, 4}
'언어) Python' 카테고리의 다른 글
[Python] Python 자료형(5): 딕셔너리(Dictionary)형 (0) | 2022.05.02 |
---|---|
[Python] Python 자료형(4): 튜플(Tuple)형 (feat. 리스트형) (0) | 2022.05.01 |
[Python] Python 자료형(3): 리스트(List)형 (0) | 2022.05.01 |
[Python] Python 자료형(2): 문자열(String)형 (0) | 2022.05.01 |
[Python] Python 자료형(1) 숫자(Number)형과 연산자 (0) | 2022.04.28 |