본문 바로가기

Python 기초 배우기/비전공자도 배우는 파이썬 기초

10. 파이썬 집합(set) 자료형

 

#집합 #set #집합자료형

 

 

파이썬 자료형의 종류
1. 숫자형
2. 문자열 자료형
3. 리스트 자료형
4. 튜플 자료형
5. 딕셔너리 자료형
6. 집합 자료형 ◀(이번 장에서 배울 내용)
7. 불 자료형

 

집합(set) 자료형

수학에서 배웠던 집합의 기본적인 개념과 동일합니다.

 

집합 형태의 자료를 처리하기 위해

파이썬 2.3 버전부터 지원된 자료형입니다.

 

 

아래 표를 반복해서 보면서 자료형에 익숙해 지세요~

파이썬 자료형 비교(리스트 List / 튜플 Tuple / 딕셔너리 Dic / 집합 Set)

 

집합 (Set)

집합의 원소들을 표현

(순서가 없음, 중복 값없음)

집합의 이름 = {요소1, 요소2, 요소3...}


 

집합(Set) 자료형은 딕셔너리와 마찬가지로

순서를 가지고 있지 않아서

인덱싱과 슬라이싱을 사용할 수가 없습니다.

그리고 집합의 특성으로 중복을 허용하지 않습니다.

st1 = set([1,2,3]) print(st1) st2 = set("hello") print(st2)

 

st1 = set([1,2,3])
print(st1)

st2 = set("hello")
print(st2)


##### result #####

{1, 2, 3}

{'e', 'h', 'o', 'l'}  

#hello를 출력했지만 set자료형의 특성으로 결과값이 다릅니다. 
 1. 순서가 없다.
 2. 중복값이 없다.

 

 

 

 

집합 관련 함수

집합의 특성을 지닌 함수들


 

수학에서 배운 집합과 동일하게

교집합, 합집합, 차집합을 구할 수 있습니다.

 

1) 교집합 구하기 (intersection)
집합.intersection( )
s1=set([1,2,3,4,5,6])
s2=set([4,5,6,7,8,9])

print(s1.intersection(s2)) #s1과 s2의 교집합을 출력
print(s1 & s2) #교집합을 더 간단히 표현하는 방법


##### result #####

{4, 5, 6}
{4, 5, 6}

 

 

 

2) 합집합 구하기 (union)
집합.union( )
s1=set([1,2,3,4,5,6])
s2=set([4,5,6,7,8,9])

print(s1.union(s2)) #s1과 s2의 합집합을 출력
print(s1 | s2) #간단한 표현
#합집합 기호( | )는 "파이프" 라고 부릅니다.
#키보드 Enter위에 원화키를 "쉬프트+원화키" 누릅니다.


##### result #####

{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}

 

 

 

3) 차집합 구하기 (difference)
집합.difference( )
s1=set([1,2,3,4,5,6])
s2=set([4,5,6,7,8,9])

print(s1.difference(s2)) #s1에서 s2의 차집합을 출력
print(s1 - s2) #간단한 표현

print(s2.difference(s1)) #s2에서 s1의 차집합을 출력 
print(s2 - s1) #차집합


##### result #####

{1, 2, 3}
{1, 2, 3}

{8, 9, 7}
{8, 9, 7}

 

 

 

 

4) 값 1개 추가하기 (add)
집합.add(추가할 값)
s1=set([1,2,3,4,5,6])

s1.add(7)  #s1이라는 집합변수에 7이라는 값을 추가
print(s1)


##### result #####

{1, 2, 3, 4, 5, 6, 7}

 

 

 

5) 값 여러 개 추가하기(update)
집합.update(추가할 값)
s2=set([4,5,6,7,8,9])

s2.update([1,2,3])  # s2라는 집합변수에 값 여러 개 추가
print(s2)


##### result #####

{1, 2, 3, 4, 5, 6, 7, 8, 9}

 

 

 

6) 특정 값 제거하기 (remove)
집합.remove(삭제할 값)
s1=set([1,2,3,4,5,6])

s1.remove(5)
print(s1)


##### result #####

{1, 2, 3, 4, 6}