본문 바로가기
Python

10. 파이썬 집합(set) 특징

by To올라운더 2023. 6. 27.
반응형

[1] 집합(set) 특징

집합(set)은 중괄호로 표기하는 자료형식으로

매번 강조하는 여러 자료형의 특징을 비교해보면

구분 튜플(tuple) 리스트(list) 집합(set) 딕셔너리(dictionary)
공통사항 1개 이상의 데이터(값)을 관리(저장)할 때 사용
형태 소괄호 - ( ) 대괄호 - [ ] 중괄호 + 콤마 - { , } 중괄호 - { Key : Value}
순서(index) O O X X
중복허용 O O X (Value) X (Key)
수정 가능 X O O O

집합(set)은 순서가 없고 중복 값을 허용하지 않으며, 수정이 가능한 자료유형이다.

튜플, 리스트와 비교시 중복이 없다는 점이 가장 큰 차이인데,

이러한 특징을 이용해 중복을 제거하기 위한 용도로 사용이 되며,

다른 자료형 대비 2개의 집합(set)간의 요소 비교(합집합, 차집합, 교집합 등)의 사용이 용이하다.

 

1. 집합(set) 만들기(선언)

- 집합은 중괄호 '{ }'를 이용하여 만들며, 여러가지 요소(자료 유형에 구분 없이)를 추가할 수 있다.

set1 = {1,2,3}
print(type(set1)) # 결과 값 set
set2 = {4,5,} # 마지막에 콤마가 있어도 무관
print(type(set2)) # 결과 값 set
dict1 = {} # 빈 값으로 입력 시 dictionary type
print(type(dict1))  # 결과 값 dict
set3 = set()
print(type(set3)) # 결과 값 set
set4 = set([7,8,9]) # 리스트 형태에서 set 으로 자료 입력
print(type(set4)) # 결과 값 set

2. 인덱싱과 슬라이싱

- 집합(set)의 경우, 반복적으로 출력을 해보면 결과가 계속 달라지는데,요소 값들의 순서(인덱스)가 없기 때문이다.

위의 사유로 인덱싱과 슬라이싱은 불가하다.

(인덱싱, 슬라이싱을 사용하기 위해서는 튜플이나 리스트의 형태로 자료유형의 변환이 필요하다.)

set1 = {1, 2, 3}
list1 = list(set1) # 리스트로 변환
print(list1[1]) # 리스트 변환 후, 인덱싱

 

3. 집합(set)의 요소 수정(추가, 삭제)

- 집합은 순서가 없기 때문에 인덱싱을 이용한 추가는 불가하며, 요소 값을 통한 추가, 삭제를 할 수 있다.

set1 = {1, 2, 3}

set1.add(5) # 5 추가
set1.add(7) # 7 추가
print(set1)

- 여러개의 값을 추가할 때 아래에서 배울 합집합의 형태로 추가도 가능하며, update 로도 추가 가능하다.

set1 = {1, 2, 3, 5, 7}
set1.update({5,6,7,8}) # update 를 이용한 추가1
print(set1) # set1.update({5,6,7,8}) 결과 확인

set1.update(set([8,9,10]))# update 를 이용한 추가2
print(set1) # set1.update(set([8,9,10])) 결과 확인

- remove 를 통해 해당 값을 제거할 수 있다.

set1 = {1,2,3,4,5}
set1.remove(3)
print(set1)

 

 

 

4. 합집합, 교집합, 차집합

- 집합은 각 요소간의 중복 관계를 통해 합집합, 교집합, 차집합으로 나타낼 수 있는데

각 연산자를 통해 해당 요소 값을 확인 할 수 있다.

- 합집합을 나타내는 '|' 는 둘 중 하나만 만족해도 되는 or을 나타내며

교집합을 나타내는 '&'는 둘다 만족하는 and를 나타낸다.

set1 = {1,2,3,4,5}
set2 = {1,3,5,7,9}

set3 = set1 | set2 # 합집합
print(set3)
set4 = set1 - set2 # 차집합
print(set4) 
set5 = set1 & set2 # 교집합
print(set5)

반응형

'Python' 카테고리의 다른 글

12. 파이썬 조건문(if)  (0) 2023.06.30
11. 딕셔너리(dictionary) 특징  (0) 2023.06.29
09. 파이썬 리스트(list) 특징  (0) 2023.06.26
08. 파이썬 튜플(tuple) 특징  (0) 2023.06.25
07 파이썬 Boolen(참,거짓)  (0) 2023.06.24