IT_Python

[파이썬기초] set. 중복/집합/연산(합집합,교집합...) set()/union/intersection

soyounism 2021. 12. 12. 10:15

set

  • dictionary에서 key만 활용하는 데이터 구조로 이해
  • 수학에서의 집합과 동일한 개념->중복x, 순서x
  • dict보다 많이쓰지는 않음
a = {1, 1, 2, 3, 3, 4, 1, 5}
print(a)

#중복 나오지 않음
#print(a[0]) <-오류발생. 순서가 없다는 의미!

결과:

{1, 2, 3, 4, 5}
 
 
a={}
print(type(a))
#type이 dict로.

#빈 set함수를 생성하려면
b=set()
print(type(b))
 
결과:
 
<class 'dict'>
<class 'set'>
 
 
  • set()으로 집합으로 변환
a = [1, 1, 2, 3, 3, 4, 1, 5]
print(a) #리스트

b = set(a)
print(b) #set이니까 중복이 사라짐

 결과:

[1, 1, 2, 3, 3, 4, 1, 5]

{1, 2, 3, 4, 5}

 
 
  • set operations
    • 수학 연산과 동일
    • 교집합, 합집합, 차집합 등 지원
a = {1, 2, 3}
b = {2, 3, 4}

print(a.union(b)) # 합집합
print(a.intersection(b)) # 교집합
print(a.difference(b)) # 차집합 a-b
print(a.issubset(b)) #부분 집합 a는 b의 부분집합인가
 
결과:
 
{1, 2, 3, 4}
{2, 3}
{1}

False