Python 세트 집합 set 파이썬 집합활용/사용법

2020-05-24


 

 

우선 파이썬에서는 세트(집합)를 구성할 수 있는데 

수식으로는 아래와 같이 표현할 수 있습니다.

 

seemingly_set = {1,2,3,4,5,}

print(seemingly_set)

 

위에 보시면 정상적으로 하나의

세트가 구성된 것을 알 수 있습니다.


다음은 구체적으로 집합을 구성하는

방법에 대하여 알아보도록 하겠습니다.

 

우선 학생인 집합 student

직장인 집합 employee

이 2가지로 나누어 보았습니다.

 

student = {"사람A", "사람B", "사람c"}

employee = set(["사람A", "사람D"])

 

각 집합을 구성하는 방법으로는 맨 처음 설명드린 것처럼

{} 중괄호를 활용하는 방법과 아니면

set수식을 활용하여 위와 같이 구성하는 방법이 있습니다.

이미지와 print로 확인 결과 정상적으로

student/employee 두 집합이

정상적으로 형성된 것을 확인할 수 있습니다.

 


교집합

 

해당 두 집합을 교집합을 한 번 구해보도록 하겠습니다.

수식은 아래와 같으며,

 

print(student & employee)

print(student.intersection(employee))

 

입력 시 아래와 같이 동일합 값이

나타나는 것을 확인할 수 있습니다.

 

 

&기호 및 intersection이라는 코드의 활용으로

서로 다른 두 개의 집합의 교집합을 뽑아낼 수 있습니다.


합집합

 

다음은 두 집합의 합집합을 구해 보도록 하겠습니다.

수식은 아래와 같습니다.

 

print(student | employee)

print(student.union(employee))

 

합집합 역시 두 가지 방법으로 나타낼 수 있는데,

그중 하나는 백스페이스 아래에 있는 | 기호와

union 코드를 통하여, 두 집합의 포함된 모든

사람들을 확인할 수 있습니다.


차집합

 

다음은 차집합을 구하는 방법입니다.

수식은 아래와 같습니다.

 

print(student - employee)

print(student.difference(employee))

코딩 방법은 가장 간단하게 표현될 수 있는데,

하나는 말 그대로 처음 집합 student에서 다른

집합 employee를 빼주기만 하면 나오며,

다른 하나는 difference코드를 사용하여, 

차집합을 구하는 방법이 있습니다.


번외

 

만약에 학생이었던 student 집합에 있는 특정한 사람이

더는 학생이 아니고 직장인이 되어

employee 집합으로 들어가거나,

또는 직장인이 퇴사하여 더는 직장인이 아니게 될 경우는 

어떻게 코딩으로 표현할 수 있을까요?

 

이에 대한 해답을 방법을 소개해 드리겠습니다.

 

문제 1

"사람c"가 직장인이 되어 더는 학생이 아니다.

 

employee.add("사람c")

student.remove("사람c")

print(student)

 

문제 2

"사람D"가 퇴사하여 더는 직장인이 아니다.

 

employee.remove("사람D")

print(employee)

 

문제 1.로 인하여 "사람c"는 더는 학생이 아니며,

직장인(employee) 집합으로 이동한 것을 볼 수 있으며,

 

문제 2.로 인해 "사람D"가 퇴사하여, 

직장인(employee) 집합에는 학생에서 직장인이 된

"사람c", 기존 직장인 "사람A"만 남은 것을 확인할 수 있습니다.