Program/파이썬

[Python] 집합(Set)

사막여유 2023. 1. 3. 08:07
728x90

https://fastcampus.co.kr/courses/213915

 

커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스

성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.

fastcampus.co.kr

 

집합을 언제 쓰는지를 예시로 살펴보면

2개의 리스트 중 공통적으로 갖고 있는 원소가 뭐가 있는지 찾고싶을 때 사용할 수 있다.( 교집합 )

그리고 두개의 리스트에 어떤 원소들이 들었는지 모두 찾고싶을 때 사용할 수 있다. ( 합집합 )

위에서 나온 예시들을 보면 알 수 있듯이 파이썬에서 나오는 집합은
우리가 알고 있는 수학의 집합과 같은의미라고도 볼 수 있다.

 

그리고 집합은 {} 중괄호를 사용하고 아래 2가지의 특징이 있다.

1. 집합은 원소의 중복을 허용하지 않는다. 즉, 원소의 종류를 나타내기 좋다.

2. 집합은 원소의 순서가 존재하지 않는다. 즉, 원소의 Index가 없다.

 

따라서 이 전에 배웠던 리스트, 배열 형태로 접근이 불가능하다.

S = { 1,2,3 }
S[1] 를 작성하고 실행시켜보면 아래와같은 에러가 발생한다.

 

 

그리고 이제 교집합, 합집합, 차집합의 예시를 들어본다.

 

S1 = {1,2,3,4,5}
S2 = {3,4,5,6,7}

 * 교집합
 S1 & S2 -> { 3,4,5, }

 * 합집합
 S1 | S2 -> { 1,2,3,4,5,6,7 }

 * 차집합
 S1 - S2 -> { 1,2 }
 S2 - SE -> { 6,7 }

 * 공집합
S1 = set()

 

만약 2개의 리스트가 있는데 리스트 내부에 있는 내용들도 겹쳐있는 내용을 보고싶거나
어떤 원소들이 모여있는지를 확인하고 싶을때는 어떻게 해야할까?

리스트를 집합으로 변형해준 뒤에 교집합 합집합 방식으로 결과를 추출해주면 가능하다.

그 방식으로는 Set이라는 함수를 사용해줄 수 있다.

Ex ) L = [ 1,2,3,4,5,5,6,7,8,8]
Set ( L ) -> L = { 1,2,3,4,5,6,7,8 } 

위와같은 형식으로 변형해서 사용해주면 리스트끼리도 교집합, 합집합 등을 찾아낼 수 있다.

 

마지막으로 집합에서 사용할 수 있는 함수 3가지를 아래에 소개한다.

 * 집합에 원소 한개 추가하기 ( add() )
  s.add(1) or s.add(45) ...

 * 집합에 여러 원소 추가하기 
  s = { 4,5,6 }
  s.update( {1,2} ) -> s = { 1,2,4,5,6 }

 * 집합에서 원소 제거하기 ( remove() )
  s = { 4,5,6 }
  s.remove( 4 ) -> s = { 5,6 }

728x90

'Program > 파이썬' 카테고리의 다른 글

[Python] 반복문 ( for )  (0) 2023.01.07
[Python] 반복문 ( While )  (0) 2023.01.07
[Python] 조건문(If)  (0) 2023.01.06
[Python] 사전(Dictionary)  (0) 2023.01.04
[Python] 리스트(List ), 튜플(Tuple)  (0) 2023.01.02