CodeGym /행동 /Python SELF KO /집합 연산

집합 연산

Python SELF KO
레벨 9 , 레슨 8
사용 가능

8.1 연산자와 메소드 표

Python 언어는 연산자 오버로딩을 지원해. 이 말은 즉, 객체에 대한 연산을 메소드뿐만 아니라 +, -, *, /, | 같은 연산자를 사용해도 가능하다고.

set (집합) 클래스는 가능한 연산자들을 모두 오버로딩 했어. 덕분에 수학에서 집합을 다루는 것처럼 쉽게 집합을 다룰 수 있어.

다음은 그런 연산자들의 표에요:

연산자 메소드 설명
| union() 두 집합의 합집합 반환
& intersection() 집합의 교집합 반환 (공통 요소만)
- difference() 두 집합의 차집합 반환 (첫 번째 집합에만 있는 요소)
^ symmetric_difference() 두 집합의 대칭차 반환 (각 집합에만 있는 요소)
<= issubset() 한 집합이 다른 집합의 부분집합인지 확인
< issubset() 한 집합이 다른 집합의 진부분집합인지 확인
>= issuperset() 한 집합이 다른 집합의 상위집합인지 확인
> issuperset() 한 집합이 다른 집합의 진상위집합인지 확인
== __eq__() 집합이 동등한지 확인 (동일한 요소 포함)
!= __ne__() 집합이 서로 다른지 확인 (다른 요소 포함)

집합을 다룰 때 연산자를 사용하면 굉장히 편리해. 직접 해보면 알 수 있을 거야.

8.2 연산자를 통한 집합 작업

합집합 (OR)

연산자 | union() 함수 사용

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2
print(union_set)  # 결과: {1, 2, 3, 4, 5}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)  
print(union_set)  # 결과: {1, 2, 3, 4, 5}
                            
                    

교집합 (AND)

연산자 & intersection() 함수 사용

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1 & set2
print(intersection_set)  # 결과: {3}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection_set = set1.intersection(set2)
print(intersection_set)  # 결과: {3}

차집합 (DIFFERENCE)

연산자 - difference() 함수 사용

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
difference_set = set1 - set2
print(difference_set)  # 결과: {1, 2}

                    

 

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5}
difference_set = set1.difference(set2)
print(difference_set)  # 결과: {1, 2}

대칭차 (SYMMETRIC DIFFERENCE)

연산자 ^ symmetric_difference() 함수 사용

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
s_diff = set1 ^ set2
print(s_diff)  # 결과: {1, 2, 4, 5}
                    

 

set1 = {1, 2, 3}
set2 = {3, 4, 5}
s_diff = set1.symmetric_difference(set2)
print(s_diff)  # 결과: {1, 2, 4, 5}

이상하게도 + 또는 * 연산자는 사용되지 않아. 하지만 Python 언어 설계자들이 그렇게 결정했으니까, 그들의 선택이겠지.

1
설문조사/퀴즈
파이썬의 집합, 레벨 9, 레슨 8
사용 불가능
파이썬의 집합
파이썬의 집합
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION