기타/What I Learned

[TIL] Set 타입

가죽방패 2021. 12. 14. 15:37

※ 셋(set) 타입

- 셋 타입은 항목 간에 순서가 없다는 특징과 항목간 중복을 허용하지 않는다는 특징이 있다.

예시로 {1, 1, 1, 2, 2} 와 같은 값을 set 화 시킨다면 {1, 2} 만 남게 된다. 이러한 점은 사전과 비슷하다고 볼 수 있는데 사전도 동일한 값을 지닌 key의 중복을 허용하지 않는 특성이 있고 이를 통해 알 수 있는 것은 set 타입의 항목도 변경 불가능한 객체여야 한다는 것을 짐작할 수 있다.

 

- 기본적으로 셋(set)은 우리가 고등학교때 배운 집합과도 같은 성질인데 집합의 연산에는 합집합, 교집합, 차집합, 여집합이 있다. set 또한 마찬가지로 표기 기호는 완전히 동일하지는 않지만 셋 타입도 집합처럼 각자의 집합을 표기할 수 있는데 예시는 다음과 같다.

A|B # 합집합
A&B # 교집합
A-B # 차집합
B-A # 차집합
A^B # 교집합의 여집합

○ 항목의 추가

- set의 항목의 추가는 add 메소드를 사용하면 된다. 단순하게 set에 해당하는 변수명뒤에 .add(추가할 항목) 을 붙여 작성하면 된다.

○ 항목의 삭제

- 항목의 삭제는 색인 연산이 지원되지 않아 리스트나 사전같은 del 연산자를 사용할 수 없어 두 가지 메소드를 사용해 삭제할 수 있다.

1. remove(객체) : 인수로 전달되는 객체와 동일한 값을 지닌 항목을 삭제한다. 해당 항목이 존재하지 않는 경우 KeyError가 발생한다.

2. discard(객체) : remove와 작동 방식은 동일하지만 해당 항목이 존재하지 않더라도 에러를 발생시키지 않는다.

 

○ 항목의 존재 여부

- 사전이나 시퀀스 타입처럼 in 연산자를 사용해 존재여부를 Boolean 값으로 얻을 수 있다.

'기타 > What I Learned' 카테고리의 다른 글

[TIL] 조건 표현식  (0) 2021.12.16
[TIL] Set 변환  (0) 2021.12.15
[TIL] 리스트와 사전의 상호변환  (0) 2021.12.13
[TIL] 사전의 연산  (0) 2021.12.12
[TIL] 파이썬 : 사전(Dictionary)  (0) 2021.12.11