프로그래밍 언어/파이썬

파이썬 15. set(집합)

닉네임못짓는사람 2020. 10. 6. 15:21
반응형

이번 글에서는 Set자료형에 대해서 알아보도록 하겠습니다.

 

set(집합)


Set자료형은 기본적으로 우리가 수학에서 배웠던 집합과 같은 속성을 가지고 있다고 볼 수 있습니다.

집합의 가장 큰 특징은 아무래도 중복이 없다는 점과, 집합 안의 값들 간에 순서가 없다는 점을 들 수 있을 것입니다.

때문에 파이썬의 set자료형도 마찬가지로 위와 같은 특징을 가지고 있습니다.

 

그럼 이제 실제로 코드를 통해서 set을 선언해보도록 합시다.

set1 = {1,123,4214,10,20,30,2,3,4,5,6, 6, 6, 6, 3, 3, 3}
set2 = set("hello")
print(set1)
print(set2)
print(type(set1), type(set2))

일단 set자료형은 딕셔너리와 동일하게 중괄호({ })를 사용해서 선언할 수 있습니다.

이때 딕셔너리의 경우 key와 value가 한 쌍으로 존재하기 때문에, 이 유무를 통해 해당 변수가 딕셔너리인지, 집합인지 구분합니다.

다른 방법으로는 set()와 같이 사용해서 괄호 안에 집합 요소로 넣을 값을 입력합니다.

 

이때 주의해야 할 점은, 빈 딕셔너리의 경우 동일하게 중괄호{}로 선언하지만,

빈 집합의 경우 위와 같이 사용하지 않고 set()과 같이 선언한다는 점입니다.

 

또한 위에서 집합의 특징을 말했던 것처럼, set자료형으로 선언하면 중복이 모두 제거되고 순서도 뒤죽박죽이 됩니다.

 

집합 연산


이제 이 set을 사용해서 연산을 하는 방법에 대해 알아보도록 하겠습니다.

기본적으로 파이썬의 set은 수학에서의 집합과 동일한 개념이기 때문에 집합의 교집합, 차집합, 합집합을 구할 수 있습니다.

1. 교집합

교집합은 두 집합이 있을 때 두 집합의 공통 요소들을 구해냅니다.

set1 = {1, 2, 3, 4, 5, 6, 7, 8}
set2 = {5, 6, 7, 8, 9, 10}
print(set1 & set2)

이때는 '&'기호를 사용하며, 구해진 결괏값 역시 set이기 때문에 순서가 뒤죽박죽 섞여있는 상태입니다.

 

2. 차집합

차집합은 두 집합이 있을 때 두 집합의 공통 요소들을 제외한 요소들을 구해냅니다.

set1 = {1, 2, 3, 4, 5, 6, 7, 8}
set2 = {5, 6, 7, 8, 9, 10}
print(set1 - set2)

이때는 '-'기호를 사용하며, 결과는 동일하게 set자료형입니다.

 

3. 합집합

합집합은 두 집합이 있을 때 두 집합의 모든 요소를 합친 결과를 구해냅니다.

set1 = {1, 2, 3, 4, 5, 6, 7, 8}
set2 = {5, 6, 7, 8, 9, 10}
print(set1 | set2)

이때는 '|'기호를 사용하며, 결과는 동일하게 set자료형입니다. 

또한 두 집합에 공통적으로 들어가있던 요소는 둘 중 하나만 표시됩니다.

 

이번 글은 이 정도로 마치도록 하겠습니다.

감사합니다.

반응형

'프로그래밍 언어 > 파이썬' 카테고리의 다른 글

파이썬 17. if문-1  (0) 2020.10.08
파이썬 16. set관련 함수  (0) 2020.10.07
파이썬 14. 딕셔너리 관련 함수  (0) 2020.10.05
파이썬 13. 딕셔너리  (0) 2020.09.28
파이썬 12. 튜플  (0) 2020.09.23