세조목

PYTHON 정리(점프투파이썬 - 집합 자료형)(23.12.31) 본문

데이터 분석 공부/Python

PYTHON 정리(점프투파이썬 - 집합 자료형)(23.12.31)

세조목 2023. 12. 31. 18:30
  • 본 내용들은 PYTHON을 공부하면서 차후 제가 복습하기위해 정리해놓은 것으로 제가 새롭게 알게된 내용들만을 정리하였습니다. 또한 배움이 부족하여 미처 다 파악하지 못한 부분들도 많으니 혹시나 이 포스팅을 보시는 분들께서는 다른 포스팅, 도서, 강의도 함께 참고하시기 바라겠습니다.

 

1. 집합 자료형 생성

집합 자료형은 set 키워드를 사용해서 만들 수 있다.

set( ) 안에 값을 입력하면되는데

set로 둘러싼 값은 하나 하나 구분되어 오름차순으로 정리된다.

a = set("Mushroom")
a
>>> {'M', 'h', 'm', 'o', 'r', 's', 'u'}

b = set("1923543252")
b
>>> {'1', '2', '3', '4', '5', '9'}

 

2. 집합 자료형 특징

  1. 중복을 허용하지 않음
  2. 순서가 없음(Unordered)

이 같은 두 가지 집합 자료형의 특징때문에 위 예시에서와 같은 값이 반환되는 것이다.

그리고 순서가 없다는 특징으로인해 집합 자료형은 딕셔너리와 마찬가지로 인덱싱이 불가능하다.

 딕셔너리의 경우 key값을 입력하는 방식으로 value값을 반환받을 수는 있음

인덱싱할 필요가 있다면 집합 자료형을 리스트화 또는 튜플화해야한다.

아래와 같이 말이다.

a = set("Mushroom")
b = list(a)
b
>>> ['o', 's', 'u', 'M', 'r', 'm', 'h']

c = tuple(a)
c
>>> ('o', 's', 'u', 'M', 'r', 'm', 'h')

 

3. 교집합, 합집합, 차집합

교집합, 합집합, 차집합을 구할 때 set 자료형을 굉장히 유용하게 활용할 수 있다.

이를 확인하기 위해 set 자료형 두 개를 먼저 만들어보자.

a = set([1, 3, 5, 6, 7, 2])
b = set([3, 5, 8, 9, 4, 0])

 

 

● 교집합

a & b
>>> {3,5}

a.intersection(b)
>>> {3, 5}

& 문자를 사용하거나 intersection 함수를 사용하면 교집합을 구할 수 있다.

 

● 합집합

a | b
>>> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

a.union(b)
>>> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

| 문자 또는 union 함수를 활용하면 합집합을 구할 수 있다.

 

● 차집합

a - b
>>> {1, 2, 6, 7}

a.difference(b)
>>> {1, 2, 6, 7}

- 연산자 도는 difference 함수를 활용하면 차집합을 구할 수 있다.

 

4. 집합 자료형 관련 함수

  1. add
  2. update
  3. remove

● add

add 함수는 set 자료형에 값을 추가할 때 사용하는 함수다.

변수.add(문자열, 숫자, 튜플) 를 입력해주면 된다.

이 때 리스트는 set 자료형에 추가할 수 없다는 점 인지해야한다.

a = set([88, 234, 38, 1])
a.add(203)
a
>>> {1, 38, 88, 203, 234}


● update

여러 개의 값을 한꺼번에 추가할때는 update함수를 사용한다.

변수.update([문자열, ...])

a = set([88, 234, 38, 1])
a.update([3, 2, 98, 42])
a
>>> {1, 2, 3, 38, 42, 88, 98, 234}

 

● remove

특정 값을 제거하고싶을때 remove함수를 사용한다.

변수.remove(제거할 값)

a = set([88, 234, 38, 1])
a.remove(88)
a
>>> {1, 38, 234}